Cod sursa(job #1767784)
Utilizator | Data | 29 septembrie 2016 19:06:05 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <cstdio>
const int infi = 1 << 30;
int main() {
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int N, x, smax = -infi, s = 0, st, dr, pos;
scanf("%d", &N);
for(int i = 1; i <= N; ++ i) {
scanf("%d", &x);
s += x;
if(s < 0)
s = 0, pos = i;
if(s > smax) {
smax = s;
st = pos + 1;
dr = i;
}
}
printf("%d %d %d\n", smax, st, dr);
return 0;
}