Cod sursa(job #349771)

Utilizator MKLOLDragos Ristache MKLOL Data 21 septembrie 2009 14:49:57
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#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);

}