Cod sursa(job #517871)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 30 decembrie 2010 01:04:25
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>

int a[400201],n,i,s,smax,nr,t1,t[400201],x,poz,nrm,s1,s2,l1,l2,s3,l,p;

int max(int a, int b)
{
    if (a>b) return a;
    return b;
}

int main()
{
    freopen("buline.in","r",stdin);
    scanf("%d",&n);
    for (i=1;i<=n;++i)
    {
        scanf("%d %d",&x,&t1);
        if (t1==0)
            a[i]=-x;
            else
            a[i]=x;
			s+=a[i];
    }
    for(i=1;i<=n;++i){
	    s1+=a[i];
	    l1++;
	    if(s1<a[i]) 
			s1=a[i],l1=1;
	    s2-=a[i];
	    l2++;
	    if(s2<-a[i]) 
			s2=-a[i],l2=1;
	    if(s1>smax)
			smax=s1,
			p=i-l1+1,
			l=l1;
	    if(s+s2>smax)
		   smax=s+s2,
		   p=i+1,
		   l=n-l2;
	}

    
    freopen("buline.out","w",stdout);
    printf("%ld %ld %ld",smax,p,l);
    return 0;
}