Cod sursa(job #594845)
| Utilizator | Data | 9 iunie 2011 21:02:26 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
#define nmax 7000005
int N, v[nmax], suma=-2e9, in, sf, min=0, k;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d", &N);
for (int i=1; i<=N; ++i)
scanf("%d", &v[i]);
for (int i=1; i<=N; ++i)
{
v[i] += v[i-1];
if (suma < v[i] - min)
suma = v[i] - min, in = k + 1, sf = i;
if (min > v[i])
min = v[i], k = i;
}
printf("%d %d %d", suma, in, sf);
}
