Cod sursa(job #612875)
Utilizator | Data | 12 septembrie 2011 15:56:16 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 65 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.73 kb |
#include <stdio.h>
int main()
{
FILE *fin, *fout;
int n, x, i, smax, scur, st, sf, stm, sfm;
fin = fopen("ssm.in", "rt");
fout = fopen("ssm.out", "wt");
fscanf(fin, "%d %d", &n, &x);
scur = smax = x;
stm = sfm = st = sf = 1;
for(i=2; i<=n; i++)
{
fscanf(fin, "%d", &x);
if(scur<0)
{
scur = x;
st = i;
}
else
{
scur = scur+x;
sf = i;
}
if(scur > smax)
{
smax = scur;
stm = st;
sfm = sf;
}
}
fprintf(fout, "%d %d %d\n", smax, stm, sfm);
fclose(fin);
fclose(fout);
return 0;
}