Cod sursa(job #2151056)
| Utilizator | Data | 4 martie 2018 00:09:04 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <limits.h>
#include <fstream>
int main() {
int v[100];
int n = 0, x;
std::ifstream in("ssm.in");
std::ofstream out("ssm.out");
while (in >> x) v[n++] = x;
int sum = 0, sumMax = INT_MIN;
int maxStart = 0, maxEnd = 0, start = 0;
for (int i = 0; i < n; i++) {
if (sum < 0) {
start = i;
sum = 0;
}
sum += v[i];
if (sum > sumMax) {
sumMax = sum;
maxStart = start + 1;
maxEnd = i + 1;
}
}
out << sumMax << ' ' << maxStart << ' ' << maxEnd;
return 0;
}