#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int times;
int n,a[110000],start[110000],f[110000];
void init()
{
memset(a,0,sizeof(a));
memset(start,0,sizeof(start));
memset(f,0,sizeof(f));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
return;
}
void work(int k)
{
int maxn=a[1];
f[1]=a[1];
start[1]=1;
for(int i=2;i<=n;i++)
{
if(f[i-1]+a[i]>=a[i])
{
f[i]=f[i-1]+a[i];
start[i]=start[i-1];
}
else
{
f[i]=a[i];
start[i]=i;
}
maxn=max(maxn,f[i]);
}
printf("Case %d:\n",k);
for(int j=1;j<=n;j++)
if(maxn==f[j])
{
printf("%d %d %d\n",maxn,start[j],j);
break;
}
if(k!=times)
printf("\n");
}
int main()
{
scanf("%d",×);
for(int i=1;i<=times;i++)
{
init();
work(i);
}
return 0;
}
hdu1003 Max Sum
最新推荐文章于 2019-04-11 16:08:58 发布