Pagini recente » Monitorul de evaluare | Cod sursa (job #1187051) | Cod sursa (job #355327) | Cod sursa (job #3222466) | Cod sursa (job #3203732)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int v[6000001];
int main() {
int n;
in >> n;
for (int i = 1; i <= n; i++) {
in >> v[i];
v[i] += v[i - 1];
}
int suma_maxima = INT_MIN;
int start_subsecventa = 1;
int sfarsit_subsecventa = 1;
int suma_curenta = 0;
int start_curent = 1;
for (int i = 1; i <= n; i++) {
if (suma_curenta < 0) {
suma_curenta = v[i];
start_curent = i;
} else {
suma_curenta += v[i];
}
if (suma_curenta > suma_maxima) {
suma_maxima = suma_curenta;
start_subsecventa = start_curent;
sfarsit_subsecventa = i;
}
}
out << suma_maxima << ' ' << start_subsecventa << ' ' << sfarsit_subsecventa << endl;
return 0;
}