Pagini recente » Cod sursa (job #532848) | Istoria paginii utilizator/eandrea | Cod sursa (job #1111748) | Cod sursa (job #644876) | Cod sursa (job #415170)
Cod sursa(job #415170)
#include <stdio.h>
#define N 6000000
#define max(a,b) (a > b) ? a:b
int main(int argc, char** argv){
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int a[N], b[N], i, n, maxg, id_maxg;
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", a+i);
maxg = b[0] = a[0];
for(i = 1; i < n; i++) {
b[i] = max(a[i], a[i] + b[i - 1]);
if(b[i] > maxg) {
maxg = b[i];
id_maxg = i;
}
}
for(i = id_maxg; i >= 0; i--)
if(!(a[i] - b[i])) break;
printf("%d %d %d\n", maxg, i + 1, id_maxg + 1);
return 0;
}