题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003
题意:求最大连续子序列的 总和、起始位置、最终位置
说明:类似于hdu1231链接: http://acm.hdu.edu.cn/showproblem.php?pid=1231 看了一次大神的代码,一次A过
#include<stdio.h>
int a[100050];
int main(){
int T,n,kase=0;
scanf("%d",&T);
while(T--){
if(kase) printf("\n");
printf("Case %d:\n",++kase);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
int sta=1,end=1,flag=1,MAX=a[1],sum=a[1];
for(int i=2;i<=n;i++){
if(sum<0){
sum=a[i];
flag=i;
}else
sum+=a[i];
if(sum>MAX){
MAX=sum;
sta=flag;
end=i;
}
}
printf("%d %d %d\n",MAX,sta,end);
}
return 0;
}