6 -2 11 -4 13 -5 -2 10 -10 1 2 3 4 -5 -23 3 7 -21 6 5 -8 3 2 5 0 1 10 3 -1 -5 -2 3 -1 0 -2 0
20 11 13 10 1 4 10 3 5 10 10 10 0 -1 -2 0 0 0 HintHint Huge input, scanf is recommended.
AC代码:
#include#include int num[10005]; int main() { int k; while(scanf("%d", &k) != EOF && k) { for(int i = 0; i < k; i++) scanf("%d", &num[i]); int max = -1000; int sum = 0; int start = 0; int end = 0; int t = 0; for(int i = 0; i < k; i++) { if(sum < 0) { t = i; sum = num[i]; } else sum += num[i]; if(sum > max) { max = sum; start = t; end = i; } } if(max < 0) printf("0 %d %d\n", num[0], num[k-1]); else printf("%d %d %d\n", max, num[start], num[end]); } return 0; }