讨论 / 这是一道好玩的题
我不认识韩津晶 2015-12-25 21:29:08
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

int s[105]={0},ans[205][205]={0},sum[205]={0},flag,temp,max[205][205]={0};

int xiao(int a,int b)

{

if(a<b) return a;

else return b;

}

int main()

{

int n,i,j,k,min,x=0,p,l,ans1=2000000000,ans2=-1,maxx;

scanf("%d",&n);

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

{

scanf("%d",&s[i]);

x+=s[i];

sum[i]=x;

}

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

{

s[i]=s[i-n];

x+=s[i];

sum[i]=x;

}

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

{

j=i+1;

ans[i][j]=s[i]+s[j];

max[i][j]=ans[i][j];

}

for(i=n*2;i>=1;i--)

{

for(j=i+1;j<=n*2;j++)

{

min=999999999;

maxx=-1;

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

{

flag=ans[i][k]+ans[k+1][j];

temp=max[i][k]+max[k+1][j];

if(flag<min) min=flag;

if(temp>maxx) maxx=temp;

}

ans[i][j]=min+sum[j]-sum[i-1];

max[i][j]=maxx+sum[j]-sum[i-1];

}

}

j=n;

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

{

if(ans1>ans[i][j]) ans1=ans[i][j];

if(ans2<max[i][j]) ans2=max[i][j];

j++;

}

printf("%d\n%d",ans1,ans2);

return 0;

}

#1 我不认识韩津晶@2015-12-25 21:36:26
回复 删除
是啊
#2 我不认识薛仪阳@2015-12-25 21:37:05
回复 删除
233333
#3 我不认识韩津晶@2015-12-27 02:13:55
回复 删除
哈哈哈哈哈
查看更多回复
提交回复