Cod sursa(job #3184131)
| Utilizator | Data | 14 decembrie 2023 16:03:58 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
using namespace std;
int n;
int v[6000005];
ifstream f("ssm.in");
ofstream g("ssm.out");
int main() {
f >> n;
for (int i = 1; i <= n; i++) {
f >> v[i];
}
int sol = -99999999;
int start = 0;
int Max = sol;
int fin_max = start;
int start_max = start;
for (int i = 1; i <= n; i++) {
if (sol < 0) {
sol = v[i];
start = i;
} else {
sol = sol + v[i];
}
if (Max < sol) {
Max = sol;
fin_max = i;
start_max = start;
}
}
g << Max << " " << start_max << " " << fin_max;
}