Cod sursa(job #831892)

Utilizator 5t3fristea stefan 5t3f Data 9 decembrie 2012 14:10:42
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
 
#define INF 2000000000
 
#define N 200001
 
long n,i,a[N],b,s[N],t[N],w=-INF,x,z,l,j;
 
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];
 
if(a[i]>w)
 
w=a[i],l=i,x=1;
 
s[i]=a[i]+s[i-1];
 
if(s[i]>t[i-1])
 
t[i]=s[i];
 
else
 
t[i]=t[i-1];}
 
if(w>=0)
 
{for(j=1;j<=n;j++)
 
if(t[j-1]+s[n]-s[j-1]>w)
 
w=t[j-1]+s[n]-s[j-1],l=j;
 
for(i=l,x=0;i<n+l;i++)
 
{x++;
 
if(i>n)
 
z+=a[i-n];
 
else
 
z+=a[i];
 
if(z==w)
 
break;}}
 
printf("%ld %ld %ld",w,l,x);
 
return 0;