再写一遍,加深印象。
#include <stdio.h>
int main()
{
int n;
int i;
int k[10000];
int flag;
while (EOF != scanf("%d", &n) && n)
{
int nowLeft, nowRight, left, right, nowValue, max;
nowLeft = nowRight = left = right = 1;
flag = 0;
nowValue = 0;
max = -1;
for (i = 1; i <= n; i++)
{
scanf("%d", &k[i]);
if (k[i] >= 0)
flag = 1;
nowValue += k[i];
nowRight = i;
if (max < nowValue)
{
max = nowValue;
left = nowLeft;
right = nowRight;
}
if (nowValue < 0)
{
nowValue = 0;
nowLeft = nowRight = i + 1;
}
}
if (!flag)
{
left = 1;
right = n;
max = 0;
}
printf("%d %d %d\n", max, k[left], k[right]);
}
return 0;
}