原题链接(HDU1003)
这道题和JOJ的1995: Energy 是一个类型的题:最大字段和。
但是这个是需要你考虑出最大的字段和 还要考虑出这个字段和 是从哪儿到哪儿。
【注意】这道题有个细节:就是如果都是负数的时候,就是那个最小的负数!
#include <iostream>
using namespace std;
int main()
{
// freopen("c:\\in.txt","r",stdin);
int cases, n;
int cur, i,j, maxn, sum, begn, endn,x;
cin>>cases;
for(j=1; j<=cases; j++)
{
cin>>n>>cur;
sum = maxn = cur;
begn = endn = x = 1;
for (i=2; i<=n; i++)
{
scanf("%d",&cur);
if (sum+cur < cur)
{
sum=cur;
x=i;
}
else
sum += cur;
if (sum>maxn)
{
maxn = sum;
begn = x;
endn = i;
}
}
cout<<"Case "<<j<<":"<<endl;
cout<<maxn<<" "<<begn<<" "<<endn<<endl;
if (j!=cases) cout<<endl;
}
return 0;
}