Cod sursa(job #2806327)
| Utilizator | Data | 22 noiembrie 2021 15:35:32 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int n, best = 0, start_idx = 1, end_idx = 1, maxBest = INT_MIN, value;
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> value;
if (value + best > value) {
best += value;
} else if (value >= best) {
best = value;
start_idx = end_idx = i;
}
if (best > maxBest) {
maxBest = best;
end_idx = i;
}
}
fout << maxBest << " " << start_idx << " " << end_idx;
return 0;
}