讨论 / 大牛来解释一下哪里错了,只过一半
8635722 2009-06-28 07:27:00
点我顶贴 收藏 删除
#include<stdio.h>

int a[201];

int max[201][201];

int main()

{

int n;

scanf("%d",&n);

int i,j,k;

for(i=1;i<=n;i++)

{scanf("%d",&a[i]);a[i+n]=a[i];}

int t;

int tmp;

for(k=1;k<n;k++)

for(i=1;i<=n;i++)

{

t=i+k;

for(j=i;j<t;j++)

{

tmp=max[i][j]+max[j+1][t]+a[i]*a[j+1]*a[t+1];

if(max[i][t]<tmp)

{max[i][t]=tmp;

// printf("%d %d %d",i,t,max[i][t]);

}

}

}

int big=0;

for(i=1;i<=n;i++)

if(max[i][i+n-1]>big) big=max[i][i+n-1];

printf("%d",big);

}

查看更多回复
提交回复