Saturday 21 March 2009

HOJ ( acm.hdu.edu.cn ) 1003





#include<iostream>
using namespace std;

template<class t>
void maxsum(t* array,int size)
{
long long m=-0x7fffffff,mx=-0x7fffffff;
int bx=-1,b=0,e=0;
for(int i=0;i<size;i++)
{
if(mx>=0)mx+=array[i];
else if (mx<array[i])
{
mx=array[i];
bx=i;
}
if(mx>m)
{
m=mx;
b=bx;
e=i;
}

}
cout<<m<<" "<<b+1<<" "<<e+1;
}

int main()
{
int a[100000];
int n,m;
cin>>n;
for(int i=1;i<n;i++)
{
cin>>m;
for(int j=0;j<m;j++)
cin>>a[j];
cout<<"Case "<<i<<":"<<endl;
maxsum(a,m);
cout<<endl<<endl;
}
cin>>m;
for(int j=0;j<m;j++)
cin>>a[j];
cout<<"Case "<<n<<":"<<endl;
maxsum(a,m);
cout<<endl;
return 0;
}

No comments:

Post a Comment