The idea of this question is very simple, as long as the continuous addition of and greater than or equal to zero, will continue to add, if in the first I-1 item Less Than Zero, assign the value of sum to the value of the sequence I.
And record its subscript.
# Include <stdio. h> # define N-0000000int main () {int t, n, J, K, beg, end, CAS = 1; long sum, Max; int A [100001]; scanf ("% d", & T); While (t --) {scanf ("% d", & N); For (INT I = 1; I <= N; I ++) {scanf ("% d", & A [I]);} sum = 0, max = n, k = 1, j = N; for (INT I = 1; I <= N; I ++) {If (sum> = 0) {sum + = A [I]; j = I ;} else {sum = A [I]; k = I; j = I;} If (sum> = max) {beg = K, end = J; max = sum ;}} printf ("case % d: \ n", CAS ++); printf ("% LD % d \ n", Max, beg, end); If (t) printf (" \ N "); // no attention. This is always pe !, After the change, I decided. } Return 0 ;}