Cod sursa(job #2522731)
| Utilizator | Data | 12 ianuarie 2020 21:42:30 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int N, v[6000001], suma, sumamax = -2e9, sfarsit, inceput, helper = 1;
int main() {
fin >> N;
for (int i = 1; i <= N; ++i)
fin >> v[i];
for (int i = 1; i <= N; ++i) {
if (suma < 0) {
helper = i;
suma = v[i];
}else
suma += v[i];
if (suma > sumamax) {
sumamax = suma;
inceput = helper;
sfarsit = i;
}
}
fout << sumamax << " " << inceput << " " << sfarsit;
return 0;
}
