Pagini recente » Cod sursa (job #2469664) | Cod sursa (job #2004356) | Cod sursa (job #2181391) | Cod sursa (job #2040733) | Cod sursa (job #349769)
Cod sursa(job #349769)
#include<stdio.h>
int ifin,ok,q,jfin,max,N,v[200010],l[200000],a,b,min;
int main()
{
freopen("buline.in","r",stdin);
//freopen("buline.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
{
scanf("%d%d",&a,&b);
if(b==0)
b=-1;
v[i]=a*b;
l[i]=l[i-1]+v[i];
}
for(int i=1;i<=N;++i)
{
if(l[i-1]>=l[max])
max=i-1;
if((l[max]+(l[N]-l[i]))>ok)
{
ok=l[max]+(l[N]-l[i]);
ifin=i+1;
jfin=(N-i)+max;
}
if(l[i-1]<=l[min])
min=i-1;
if(l[i]-l[min]>ok)
{
ok=l[i]-l[min];
ifin=min+1;
jfin=i-min;
}
}
printf("%d %d %d",ok,ifin,jfin);
}