Pagini recente » Cod sursa (job #2107776) | Cod sursa (job #2184792) | Cod sursa (job #513642) | Cod sursa (job #2099996) | Cod sursa (job #2331144)
#include <cstdio>
using namespace std;
int x[200005];
int main(){
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
int n,p,smin,sc,ic,st,dr,col,i;
long stot=0,smax;
scanf("%d",&n);
for(i=1;i<=n;++i){
scanf("%d%d",&x[i],&col);
if(col==0){
x[i]=-x[i];
}
stot+=x[i];
}
smax=sc=x[1];
for(i=2;i<=n;++i){
if(sc+x[i]<x[i]){
sc=x[i];
}else{
sc=sc+x[i];
}
if(smax<sc){
smax=sc;
}
}
sc=smin=x[1];
st=dr=ic=1;
for(i=2;i<=n;++i){
if(sc+x[i]>x[i]){
sc=x[i];
ic=i;
}else{
sc=sc+x[i];
}
if(smin>sc){
smin=sc;
st=ic;
dr=i;
}
}
printf("%d %d %d",stot-smin,dr+1,n-(dr-st+1));
return 0;
}