Pagini recente » Diferente pentru blog/square-root-trick intre reviziile 15 si 14 | Diferente pentru utilizator/robertnanu_fmi intre reviziile 2 si 1 | Borderou de evaluare (job #2631285) | Diferente pentru utilizator/vasalex intre reviziile 8 si 7 | Cod sursa (job #1163157)
#include <stdio.h>
#include <algorithm>
#define inf 1<<30
using namespace std;
int main() {
freopen ("ssm.in", "r", stdin);
freopen ("ssm.out", "w", stdout);
int N, y, x, maxim, start, finish, st, fin;
scanf ("%d", &N);
y = 0;
maxim = -inf;
for (int i = 1; i <= N; ++i) {
scanf ("%d", &x);
if (y + x >= x) {
y += x;
if (y > maxim) {
maxim = y;
start = st;
finish = i;
}
continue;
}
y = x;
st = i;
if (y > maxim) {
maxim = y;
start = i, finish = i;
}
}
printf ("%d %d %d\n", maxim, start, finish);
return 0;
}