//#include "StdAfx.h"
#include
using namespace std;
int main()
{
int zu;
cin>>zu;
for(int j=1;j<=zu;j++)
{
if(j!=1)
cout<
cin>>nums;
for(int i=0;i
cin>>c;
sum+=c;
if(sum>=max)
{
start=temp;
end=i;
max=sum;
}
if(sum<0)
{
sum=0;
if(c>=0)
temp=i;
else
temp=i+1;
}
}
cout<<"Case "<
}
可以一边输入,一边判断处理。temp表示起点位置,start表示sum最大时的开始位置,end表示sum最大时的结束为止。end可以跟随i前进故不用在定义一个临时变量。当sum>=max时 ,更新数据 当sum<0 是更新开始位置。
声明个数组int a[20][10000] 不过感觉这样子 是不是时间要求会不过~