#include <stdio.h> int f(int a[], int n) { int MaxSum = a[0]; int currentMax = a[0]; int begin = 0; int end = 0; int tempBegin = 0; for (int i = 1; i < n; i++) { if (a[i] > currentMax + a[i]) { currentMax = a[i]; tempBegin = i; } else { currentMax = currentMax + a[i]; } if (currentMax > MaxSum) { MaxSum = currentMax; begin = tempBegin; end = i; } } // printf("开始和结束为:%d %d\n", begin, end); return MaxSum; } int main() { int n; while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case int a[n]; for (int i = 0; i < n; i++) scanf("%d", &a[i]); int max = f(a, n); printf("%d\n", max); } return 0; }