Pagini recente » Cod sursa (job #2840272) | Cod sursa (job #470765) | Cod sursa (job #2446632) | Cod sursa (job #999541) | Cod sursa (job #1266171)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("ssm.in");
ofstream g ("ssm.out");
const int NMAX = 6000000 + 1;
int n, a_max, b_max, s_max;
int s[NMAX];
inline void update(int valoare, int a, int b) {
s_max = valoare;
a_max = a;
b_max = b;
}
void rezolva() {
int x, a;
f >> n >> s[1];
update(s[1], 1, 1);
for (int i = 2; i <= n; i++) {
f >> x;
if (s[i - 1] > 0) {
s[i] = s[i - 1] + x;
}
else {
a = i;
s[i] = x;
}
if (s[i] == s_max)
if (i - a < b_max - a_max) update(s[i], a, i);
if (s[i] > s_max) update(s[i], a, i);
}
g << s_max << ' ' << a_max << ' ' << b_max << '\n';
}
int main() {
rezolva();
return 0;
}