Pagini recente » Cod sursa (job #2151079) | Cod sursa (job #1776969) | Cod sursa (job #281146) | Cod sursa (job #2132914) | Cod sursa (job #2331140)
#include <cstdio>
using namespace std;
int x[200005];
int main(){
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
int n,p,smin,smax,sc,ic,st,dr,col,stot=0,i;
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;
}