Pagini recente » Cod sursa (job #1025002) | Cod sursa (job #2407040) | Cod sursa (job #1492952) | Cod sursa (job #1424061) | Cod sursa (job #2704547)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int v[6000001], sum[6000001], sum_min[6000001];
int main() {
int n, sum_max = -1000000000, left, right;
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
sum[i] += sum[i - 1] + v[i];
sum_min[i] = min(sum_min[i - 1], sum[i - 1]);
if (sum_min[i - 1] > sum[i - 1]) {
v[i] = i;
} else {
v[i] = v[i - 1];
}
}
for (int i = 1; i <= n; ++i) {
if (sum[i] - sum_min[i] > sum_max) {
sum_max = sum[i] - sum_min[i];
right = i;
left = v[i];
}
}
fout << sum_max << ' ' << left << ' ' << right;
return 0;
}