1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 5 int main() 6 { 7 int t,temp,n,ans,j,x,z,sum,cc=0; //sum存放最大数值 x代表下表最小 z代表最大下表 cc 第几个案例 ans 存放一直不小0的和 8 scanf("%d",&t); 9 while(t--) 10 { 11 cc++; 12 ans=0; sum=-10000000; 13 scanf("%d",&n); 14 j=0; //保存最小的下表 15 for(int i=1;i<=n;i++) 16 { 17 scanf("%d",&temp); 18 ans=ans+temp; // 每次都想加 和sum比较 之后两个if一次解释 19 if(ans>sum) //如ans》sum 则交换 20 { 21 sum=ans; 22 x=j+1; 23 z=i; 24 } 25 if(ans<0)//如ans《0 则 之前的数全部删去。并且把下标保存。 26 { 27 ans=0; 28 j=i; 29 } 30 } 31 if(t) 32 printf("Case %d: %d %d %d ",cc,sum,x,z); 33 else 34 printf("Case %d: %d %d %d ",cc,sum,x,z); 35 36 } 37 } 38