Cod sursa(job #1004666)
| Utilizator | Data | 3 octombrie 2013 14:27:23 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 65 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <cstdio>
using namespace std;
int main() {
FILE *in = fopen("ssm.in", "r"), *out = fopen("ssm.out", "w");
int n, pm = -2147483647, m = -2147483647, pms = 0, ms = 0, pme = 0, me = 0;
fscanf(in, "%d", &n);
for (int i = 1; i <= n; i++) {
int x;
fscanf(in, "%d", &x);
if (pm + x >= x) {
pm += x;
pme++;
}
else {
if (x > pm) {
pm = x;
pms = pme = i;
}
}
if (pm > m) {
m = pm, ms = pms, me = pme;
}
}
fprintf(out, "%d %d %d", m, ms, me);
}
