Cod sursa(job #1946238)
Utilizator | tudoras8 tudoras8 | Data | 29 martie 2017 23:33:12 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n;
int main(int argc, const char * argv[]) {
ifstream cin("ssm.in");
ofstream cout("ssm.out");
cin >> n;
cout << n << endl;
int bestSum = -2e10, sum = 0, begin, end, idx;
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
if (sum + x >= x) {
sum = sum + x;
} else {
sum = x;
idx = i;
}
if (sum > bestSum) {
bestSum = sum;
begin = idx;
end = i;
}
}
cout << bestSum << ' ' << begin << ' ' << end << '\n';
return 0;
}