一开始我是分开考虑开始的下标和结束的下标的。
直到看见某位大佬的代码
原谅我太菜!!!
#include <stdio.h>
int main(void)
{
/*********膜拜大佬的代码******/
int row, n, i, j, starti, maxi, tempi, max, temp;
int a[100000];
scanf("%d", &row);
for (i = 0; i < row; i++)
{
//初始化
int a[100000] = { 0 };
max = -1001;
temp = 0;
tempi = 1;
scanf("%d", &n);
for (j = 1; j <= n; j++)
{
//Input
scanf("%d", &a[j]);
temp += a[j];
if (temp > max)
{
max = temp;
starti = tempi;
maxi = j;
}
if (temp < 0)
{
temp = 0;
tempi = j + 1;
}
}
//Output
printf("Case %d:\n", i+1);
printf("%d %d %d\n", max, starti, maxi);
if (i != row - 1)
printf("\n");
}
return 0;
}
网友评论