Pagini recente » Cod sursa (job #2831122) | Cod sursa (job #2920799) | Cod sursa (job #2686016) | Cod sursa (job #106377) | Cod sursa (job #1466807)
#include<stdio.h>
int x[200005];
int main(){
int n,a,b,st=0,i,sc,smax,ic,im,sfm,sfmin,smin,smax2,imin;
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d%d",&a,&b);
if(b==0)
b=b-1;
x[i]=a*b;
st=st+x[i];
}
sc=smax=x[1];
ic=im=sfm=1;
for(i=2;i<=n;i++)
{
if(sc+x[i]<x[i]){
sc=x[i];
ic=i;
}
else
sc=sc+x[i];
if(sc>smax){
smax=sc;
im=ic;
sfm=i;
}
}
sc=smin=x[1];
ic=imin=sfmin=1;
for(i=2;i<=n;i++)
{
if(sc+x[i]>=x[i]){
sc=x[i];
ic=i;
}
else
sc=sc+x[i];
if(sc<smin){
smin=sc;
imin=ic;
sfmin=i;
}
}
smax2=st-smin;
if(smax>=smax2)
printf("%d %d %d",smax,im,sfm-im+1);
else
printf("%d %d %d",smax2,(sfmin+1)%n,n-(sfmin-imin+1));
return 0;
}