Pagini recente » Monitorul de evaluare | Cod sursa (job #2533739) | Cod sursa (job #455946) | Cod sursa (job #1588445) | Cod sursa (job #611840)
Cod sursa(job #611840)
#include<stdio.h>
#define INF 2000000000
#define N 200001
long n,i,a[N],b,w=-INF,l=1,j=1,p,r,k=1,t;
int main()
{freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
{scanf("%ld%ld",&a[i],&b);
if(!b)
a[i]=-a[i];}
for(i=1;i<2*n;i++)
{if(p>r)
p=r,l=i;
if(i<=n)
r+=a[i];
else
r+=a[i-n];
if(i-j<n&&w<r-p)
w=r-p,k=i;
if(l<=k)
j=l;}
if(w<0)
j=k;
printf("%ld %ld %ld",w,j,k-j+1);
return 0;}