Cod sursa(job #772739)
| Utilizator | Data | 30 iulie 2012 17:09:06 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <stdio.h>
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int sc = 0, st = 0, n, x, smax = 0, stmax = 0, drmax = 0, dr = 0;
scanf("%d", &n);
for(int dr = 0; dr < n; dr++)
{
scanf("%d", &x);
if(sc < 0)
{
st = dr;
sc = 0;
}
sc += x;
if(sc > smax)
{
stmax = st;
drmax = dr;
smax = sc;
}
}
printf("%d %d %d", smax, stmax + 1, drmax + 1);
return 0;
}
