Cod sursa(job #2759045)
| Utilizator | Data | 14 iunie 2021 21:47:16 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main() {
int n;
f >> n;
int start, maxi_start, maxi_end, nr, sum = 0, maxi = -int(2e9);
for (int i = 1; i <= n; i++) {
f >> nr;
if (sum < 0) {
start = i;
sum = nr;
} else {
sum += nr;
}
if (sum > maxi) {
maxi_start = start;
maxi_end = i;
maxi = sum;
}
}
g << maxi << " " << maxi_start << " " << maxi_end;
f.close();
g.close();
return 0;
}