Pagini recente » Cod sursa (job #2289306) | Cod sursa (job #3134498) | Cod sursa (job #1522271) | Cod sursa (job #2032889) | Cod sursa (job #2912876)
#include <iostream>
#include <fstream>
using namespace std;
int n, k, v[6000000], leftt = 1, rightt, length, cnt, act_leftt, act_rightt;
long long int max_sum, act_sum;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
for (int i = 1; i <= n; ++i) {
act_sum += v[i];
++cnt;
if (act_sum > max_sum) {
rightt = i;
max_sum = act_sum;
leftt = rightt - cnt + 1;
}
if (act_sum == max_sum) {
act_rightt = i;
max_sum = act_sum;
if (act_rightt - leftt + 1 < cnt) {
rightt = i;
max_sum = act_sum;
leftt = rightt - cnt + 1;
}
}
if (act_sum <= 0) {
act_sum = 0;
cnt = 0;
}
}
fout << max_sum << ' ' << leftt << ' ' << rightt;
return 0;
}