Cod sursa(job #271672)

Utilizator ConsstantinTabacu Raul Consstantin Data 5 martie 2009 19:39:30
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>

int v[20002],i,ok,j,k,m,n,s1,s2,sum,min,p,l,p2,l2,poz;

int main(){

freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);


scanf("%d",&n);
for(i=1;i<=n;i++)
        {scanf("%d %d",&v[i],&ok);
        if(!ok)v[i]=(-1)*v[i];
        }
s1=v[1];p=1;l=1;
sum=v[1];min=v[1];poz=1;
for(i=2;i<=n;i++)
        {sum+=v[i];
        if((sum-min)>s1){s1=sum-min;p=poz+1;l=i-poz;}
       if(sum<min)
        {min=sum;
        poz=i;
        }
      }

if(p+l==n+1&&p>2){
s2=v[1];l2=1;
for(sum=v[1],i=2;i<p;i++)
        {sum+=v[i];
        if(sum>s2&&sum>0){s2=sum;l2=i;}
        }
if(s2>0)
        {s1+=s2;l+=l2;}}
printf("%d %d %d",s1,p,l);
return 0;}