Cod sursa(job #720876)

Utilizator 5t3fristea stefan 5t3f Data 22 martie 2012 23:38:08
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 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;}