Pagini recente » Profil DeehoroEjkoli | Diferente pentru utilizator/robybrasov intre reviziile 78 si 74 | Istoria paginii runda/oni_cl9_random4 | Cod sursa (job #644328) | Cod sursa (job #269328)
Cod sursa(job #269328)
#include <stdio.h>
#define DIM 200001
int v[2*DIM],S[2*DIM];
int n,i,j,x,max,begin,L,beginmax,Lmax;
int main(){
FILE *f = fopen("buline.in", "r");
FILE *g = fopen("buline.out", "w");
fscanf(f,"%d",&n);
j = n+1;
for (i=1; i<=n; i++) {
fscanf(f,"%d",&v[i]);
fscanf(f,"%d",&x);
if (!x)
v[i] *= -1;
if (j<=2*n-1)
v[j] = v[i];
j++;
}
S[1] = v[1];
max = v[1];
L = 1;
begin = 1;
for (i=2; i<=2*n-1; i++) {
if (S[i-1] + v[i] >= v[i]) {
S[i] = S[i-1] + v[i];
L++;
}
else {
S[i] = v[i];
L = 1;
begin = i;
}
if ( (S[i] >= max) && (L <= n) ) {
max = S[i];
beginmax = begin;
Lmax = L;
}
}
fprintf(g,"%d %d %d",max,beginmax,Lmax);
fclose(f);
fclose(g);
return 0;
}