您的位置:首页 > 其它

杭电ACM第1003题——Max Sum

2017-03-16 17:19 253 查看
#include <stdio.h>
#include <stdlib.h>

int main() {
int T,sum,start,end,i,j,k,r,num,s;

scanf("%d",&T);
for(r=1;r<=T;r++){
start=end=sum=-1001;   //initialize
scanf("%d",&num);  //input
int *a=(int *)malloc(num*sizeof(int));
for(i=0;i<num;i++)
scanf("%d",&a[i]);

for(i=0;i<num;i++){
s=0;
for(j=i;j<num;j++){
s+=a[j];
if(s>sum){
sum=s;
start=i;
end=j;
}
if(s<0){
i=j;
break;
}
}
}

printf("Case %d:\n",r);
printf("%d %d %d\n",sum,start+1,end+1);
if(r!=T)
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: