Cod sursa(job #261561)
Utilizator | Data | 18 februarie 2009 14:30:12 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.85 kb |
# include <cstdio>
# define FIN "ssm.in"
# define FOUT "ssm.out"
int N, i, val, li, lo, max;
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d",&N);
int st, dr, sc;
st = dr = li = lo = 1;
scanf("%d",&max); sc = max;
for (i = 1; i < N; ++i)
{
scanf("%d",&val);
if (sc + val >= val)
{
sc += val;
dr++;
} else
{
sc = val;
st = dr = i + 1;
}
if (sc > max)
{
max = sc;
li = st;
lo = dr;
}
}
printf("%d %d %d",max, li, lo);
return 0;
}