J - Max Sum
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/J
题目大意:求最大的和,并输出初末位置
解题思路:两重for循环,第一重的意思是把第i个数看作起点。。
代码如下:
#include <stdio.h>
int main()
{
int i,N,T;
int num,sum,start,end,temp,max;
scanf("%d",&T);int jj=1;
while(T)
{
max=-1010;
sum=0;
temp=1;
scanf("%d",&N);
for (i=1;i<=N;i++)
{
scanf("%d",&num);
sum+=num;
if (sum>max)
{
max=sum;
start=temp;
end=i;
}
if (sum<0)
{
sum=0;
temp=i+1;
}
}
printf("Case %d:\n%d %d %d\n",jj++,max,start,end);
if (T!=1)
{
printf("\n");
}
T=T-1;
}
return 0;
}