Pagini recente » Cod sursa (job #2192952) | Cod sursa (job #50892) | Cod sursa (job #488288) | Cod sursa (job #307855) | Cod sursa (job #2068530)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int n, sol, sum, l, r;
int bl, br;
void update_sum(int nr, int i) {
sum = nr;
l = i;
r = i;
}
void update_sol() {
if (sum == sol) {
if (l < bl) {
bl = l;
br = r;
} else if (l == bl) {
if (r - l + 1 < br - bl + 1) {
bl = l;
br = r;
}
}
} else if (sum > sol) {
sol = sum;
bl = l;
br = r;
}
}
int main()
{
ios::sync_with_stdio(false);
in.tie(NULL);
out.tie(NULL);
in >> n;
bl = n;
sum = sol = -2e9;
for (int i = 1, nr; i <= n; ++i) {
in >> nr;
if (nr > sum + nr) {
update_sum(nr, i);
} else {
sum += nr;
r = i;
}
update_sol();
}
out << sol << " " << bl << " " << br;
return 0;
}