Max Sum(连续序列最大和)(简单dp)
题目:
题目大意:
找到一串数字中最大连续元素和,并按规定格式输出。
代码:
#include <iostream>
#include <cstdio>
using namespace std;
int a[1000005];
int main()
{
int t;
int i,j;
scanf("%d",&t);
for(i=0; i<t; i++)
{
int n;
scanf("%d",&n);
for(j=1; j<=n; j++)
scanf("%d",&a[j]);
printf("Case %d:\n",i+1);
int num=a[1];
int max_=a[1];
int left,right;
left=right=1;
int x=1,y=1;
for(j=2; j<=n; j++)
{
if(num<0)
{
num=a[j];
x=j;
}
else
num=num+a[j];
if(num>max_)
{
max_=num;
left=x;
right=j;
}
}
printf("%d %d %d\n",max_,left,right);
if(i<t-1)
putchar('\n');
}
return 0;
}