Cod sursa(job #1004594)
Utilizator | Data | 3 octombrie 2013 10:59:28 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <cstdio>
using namespace std;
int N, s, s2, x, r, r2, l, l2;
int main() {
FILE *in = fopen("ssm.in", "r"), *out = fopen("ssm.out", "w");
fscanf(in, "%d", &N);
l = 1;
for (int i = 1; i <= N; i++) {
fscanf(in, "%d", &x);
if (s + x < 0) {
s = 0;
l = i + 1;
r = i;
}
else {
if (s + x < s && s > s2) {
s2 = s;
l2 = l;
r2 = r;
}
s += x;
r++;
}
}
if (s < s2) {
s = s2;
l = l2;
r = r2;
}
fprintf(out, "%d %d %d", s, l, r);
}