Cod sursa(job #309299)
Utilizator | Data | 29 aprilie 2009 23:51:00 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include<fstream.h>
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
const int maxn=7000005;
int s[maxn],n,i,x;
int main(void)
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for(i=1;i<=n;i++)
f>>s[i];
int sum=-2000000000, min=0,in,sf;
for(i=1;i<=n;i++)
{
s[i]+=s[i-1];
if (sum<s[i]-min)
{
sum=s[i]-min;
in=x+1;
sf=i;
}
if (min>s[i])
{
min=s[i];
x=i;
}
}
g<<sum<<" "<<in<< " " <<sf;
f.close(), g.close();
return 0;
}