Pagini recente » Cod sursa (job #2937422) | Cod sursa (job #3161964) | Cod sursa (job #799797) | Cod sursa (job #2195927) | Cod sursa (job #2377194)
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int main(void) {
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int N;
scanf("%d", &N);
vector <int> v(N + 1, 0);
for(int i = 1; i <= N; i++) {
scanf("%d", &v[i]);
}
vector<int> bst(N + 1, 0);
bst[1] = v[1];
for(int i = 2; i <= N; i++) {
if(bst[i - 1] < 0) {
bst[i] = v[i];
}
else {
bst[i] = bst[i - 1] + v[i];
}
}
int maxim = bst[1];
int right = 1;
for(int i = 2; i <= N; i++) {
if(maxim < bst[i]) {
maxim = bst[i];
right = i;
}
}
int s = 0, left = 0;
for(int i = right; i >= 1; i--) {
s += v[i];
if(s == maxim) {
left = i;
break;
}
}
printf("%d %d %d\n", maxim, left, right);
return 0;
}