题意 : 就是让你从一个数列中找连续的数字要求他们的和最大。
思路 : 往前加然后再判断一下就行。
#include <iostream> #include<stdio.h> using namespace std; int main() { int n,start,end; cin>>n; int m ; for(int k = 1 ; k <= n ; k++) { cin>>m; int max = -1001,sum = 0,flag = 1; for(int i = 0 ; i <= m-1 ; i++) { int ch ; cin>>ch ; sum += ch; if(sum > max) { max = sum; start = flag; end = i+1; } if(sum<0) { sum=0; flag=i+2; } } cout<<"Case "<<k<<":"<<endl<<max<<" "<<start<<" "<<end<<endl; if(k != n) cout<<endl; } return 0; }