Pagini recente » Tabele hash - prezentare detaliata | Statistici Ionut Bratu (infoinblood) | Profil alex.cojocaru | Joc pe grid | Cod sursa (job #270764)
Cod sursa(job #270764)
#include <stdio.h>
int N;
int A[6000000];
int S[6000000], M[6000000];
int main(int argc, char *argv[]) {
int i, ss, se, sm;
FILE *fi = fopen("ssm.in", "r");
fscanf(fi, "%d", &N);
for (i = 0; i < N; ++i)
fscanf(fi, "%d", A+i);
fclose(fi);
S[0] = A[0];
M[0] = 0;
for (i = 0; i < N; ++i) {
S[i] = S[i-1] + A[i];
if (S[M[i-1]] > S[i])
M[i] = i;
else
M[i] = M[i-1];
}
sm = 1<<31;
ss = se = 0;
for (i = 0; i < N; ++i) {
//printf("%d-%d: %d\n", M[i]+1, i, S[i]-S[M[i]]);
if (S[i] - S[M[i]] > sm) {
sm = S[i] - S[M[i]];
ss = M[i]+1;
se = i;
}
}
FILE *fo = fopen("ssm.out", "w");
fprintf(fo, "%d %d %d\n", sm, ss+1, se+1);
fclose(fo);
return 0;
}