Pagini recente » Cod sursa (job #2322044) | Cod sursa (job #2799201) | Cod sursa (job #2990155) | Cod sursa (job #1984617) | Cod sursa (job #677802)
Cod sursa(job #677802)
// Infoarena - Arhiva Educationala Subsecventa de Suma Maxima
// Februrie 2012 Marius Dumitran
// O parcurgere O(N) daca suma scade sub 0 incepem o noua subsecventa
#include<string.h>
#include<stdio.h>
int main() {
freopen ("ssm.in", "r", stdin);
freopen ("ssm.out", "w", stdout);
int N;
scanf("%d", &N);
long long optim = -(1<<30) *(long long) 4;
long long sum = optim;
int start_opt = -1, end_opt = -1;
int start = 1;
for( int i = 1; i <= N; ++i) {
int a;
scanf("%d", &a);
if ( sum > 0 ) {
sum += a;
}
else {
sum = a;
start = i;
}
if( sum > optim ) {
start_opt = start;
end_opt = i;
optim = sum;
}
}
printf("%d %d %d\n", int(optim), start_opt, end_opt);
return 0;
}