Cod sursa(job #412248)
| Utilizator | Data | 5 martie 2010 14:09:50 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<stdio.h>
long n,best[6000001],min=0,minP=0,st,fn;
int main()
{
FILE*f=fopen("ssm.in","r");
fscanf(f,"%lld",&n);
long i=1,var=0,max=-999999999;
for(;i<=n;++i)
{
fscanf(f,"%lld",&best[i]);
var+=best[i];
best[i]=var;
if(var<min)
{min=var;minP=i;}
else
if(best[i]-min>max)
{
max=best[i]-min;
st=minP;
fn=i;
}
}
fclose(f);
FILE*g=fopen("ssm.out","w");
fprintf(g,"%lld %lld %lld",max,st+1,fn);
fclose(g);
return 0;
}
