Pagini recente » Cod sursa (job #1820218) | Cod sursa (job #975027) | Cod sursa (job #194633) | Cod sursa (job #381008) | Cod sursa (job #1497642)
#include <cstdio>
#define INF 2000000001
int main(){
int n, smax, sum, max, sc, s, lt, pozc, a, b, i, pozmax, lmax, t, pozs, ls;
FILE *fin, *fout;
fin=fopen("buline.in", "r");
fout=fopen("buline.out", "w");
fscanf(fin, "%d", &n);
smax=-INF;
sum=0;
max=-1;
sc=0;
s=0;
t=0;
lt=0;
for(i=1; i<=n; i++){
fscanf(fin, "%d%d", &a, &b);
if(b==0){
a=-a;
}
if(max<t-s){
max=t-s;
pozmax=i;
lmax=n-i+1+lt;
}
s+=a;
if(t<s){
t=s;
lt=i;
}
if(sc<0){
sc=0;
pozc=i;
}
sc+=a;
if(smax<sc){
smax=sc;
pozs=pozc;
ls=i-pozc+1;
}
}
max+=s;
if(smax<max){
smax=max;
pozs=pozmax;
ls=lmax;
}
fprintf(fout, "%d %d %d\n", smax, pozs, ls);
fclose(fin);
fclose(fout);
return 0;
}