Cod sursa(job #412261)
| Utilizator | Data | 5 martie 2010 14:13:22 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 75 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include<stdio.h>
int n,best[6000001],min=0,minP=0,st,fn;
int main()
{
FILE*f=fopen("ssm.in","r");
fscanf(f,"%d",&n);
int i=1,var=0,max=-999999999;
for(;i<=n;++i)
{
fscanf(f,"%d",&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,"%d %d %d",max,st+1,fn);
fclose(g);
return 0;
}
