Pagini recente » Cod sursa (job #3334565) | Monitorul de evaluare | Cod sursa (job #2767209) | Borderou de evaluare (job #3356968) | Cod sursa (job #2289933)
#include <stdio.h>
const long NMAX = 6000005;
long v[NMAX];
long N;
int main() {
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%ld", &N);
for (long i = 1; i <= N; ++i) {
scanf("%ld", &v[i]);
}
long b,e;
long cr_sum = v[1];
long sum = cr_sum;
b = e = 1;
long fb, fe;
for (long i = 2; i <= N; ++i) {
if (cr_sum < 0) {
b = e = i;
cr_sum = v[i];
} else {
cr_sum += v[i];
e = i;
}
if (cr_sum > sum) {
sum = cr_sum;
fb = b;
fe = e;
} else if (cr_sum == sum) {
if (e - b < fe - fb) {
fb = b;
fe = e;
}
}
}
printf("%ld %ld %ld", sum, fb, fe);
fclose(stdin);
fclose(stdout);
return 0;
}