Pagini recente » Cod sursa (job #2895291) | Cod sursa (job #1463810) | Cod sursa (job #1696628) | Cod sursa (job #147392) | Cod sursa (job #5562)
Cod sursa(job #5562)
#include <stdio.h>
int S1[1001007], S2[1001007];
int b_min, b_max;
int n, i, j;
int main() {
freopen("2sec.in", "r", stdin);
freopen("2sec.out", "w", stdout);
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &S1[i]);
for (i=n; i>=1; i--) S2[i] = S1[i] + S2[i+1];
for (i=1; i<=n; i++) S1[i]+=S1[i-1];
for (i=1; i<=n; i++) {
int cat = S1[i] - b_max;
if (S1[i] > b_max) b_max = S1[i];
S1[i] = cat;
}
for (i=n; i>=1; i--) {
int cat = S2[i] - b_min;
if (S2[i] < b_min) b_min = S2[i];
S2[i] = cat;
}
for (i=2; i<=n; i++) if (S1[i-1] < S1[i] ) S1[i] = S1[i-1];
for (i=n-1; i>=1; i--) if (S2[i+1] > S2[i+1]) S2[i] = S2[i+1];
b_max = 0;
for (i=1; i<n; i++) {
if (i == 1) b_max = S2[i+1] - S1[i];
if (S2[i+1] - S1[i] > b_max) b_max = S2[i+1] - S1[i];
}
printf("%d\n", b_max);
return 0;
}