继续DP..这道也是DP中的水题。 #include "iostream" using namespace std; void main() { int T; while(cin >>T) { for (int i =1; i<=T ;i++) { int max =-1001; int sum =0; long a = 0; cin >> a; long num = a; int beg = 0; int end =0; int temp; int con = 0; while (a--) { cin >> temp ; sum += temp ; con++; if (sum > max) { beg = con; max = sum ; end = num -a ; } if (sum < 0 ) { sum = 0 ; con = 0 ; } } cout <<"Case "<<i<<":/n"<<max<<" "<<end-beg+1<<" "<<end<<endl; if(i != T) cout<<"/n"; } } }