Cod sursa(job #2316933)
Utilizator | Iulian Oleniuc IulianOleniuc | Data | 12 ianuarie 2019 16:17:06 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <climits>
#include <fstream>
std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");
int n, dp;
int sol = INT_MIN, lo, hi;
int main() {
int x;
int left = 1;
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> x;
if (x > dp + x) {
dp = x;
left = i;
}
else
dp += x;
if (dp > sol) {
sol = dp;
lo = left;
hi = i;
}
}
fout << sol << ' ' << lo << ' ' << hi << '\n';
fout.close();
return 0;
}