Cod sursa(job #488331)
Utilizator | Data | 28 septembrie 2010 12:46:40 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <cstdio>
FILE * fin = fopen("ssm.in","r");
FILE * fout = fopen("ssm.out","w");
int main()
{
int n;
fscanf(fin,"%d",&n);
int best = 0;
int pi=0;
int max=-0x3f3f3f3f,pim,pfm;
for (int i=0; i<n; i++)
{
int x;
fscanf(fin,"%d",&x);
if (best+x<x)
{
best=x;
pi=i;
} else
best+=x;
if (best>max)
{
max=best;
pim=pi;
pfm=i;
}
}
fprintf(fout,"%d %d %d\n",max,pim+1,pfm+1);
fclose(fin);
fclose(fout);
return 0;
}