Cod sursa(job #261256)
Utilizator | perticas catalin perticas_catalin | Data | 17 februarie 2009 23:18:02 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include<stdio.h>
FILE*fin=fopen("ssm.in","r");
FILE*fout=fopen("ssm.out","w");
#define nm 6000005
#define inf 2000000000
int a[nm],ans=-inf,st,dr,n;
int main()
{
int i,best,ind;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&a[i]);
best=-inf;
for(i=1;i<=n;i++)
{
if(best<0){best=0;ind=i;}
best+=a[i];
if(best>ans)
{
ans=best;
st=ind;
dr=i;
}
}
fprintf(fout,"%d %d %d",ans,st,dr);
fclose(fin);
fclose(fout);
return 0;
}