Cod sursa(job #792582)

Utilizator avramavram andrei marius avram Data 27 septembrie 2012 18:44:25
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#define  dim 200010
int i,j,v[dim],n,k,q,ii,jj,maxi,p,st,s,t,r,l,l2,max,min,p2,q2;
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],&q);
		if(q==0)
			v[i]=v[i]-2*v[i];
		st=st+v[i];
	}
	for (i=1;i<n;i++)
	{
		if (s<0) 
		{
			s=0;
			l=i;
		}
		if (t>0) 
		{
			t=0;
			l2=i;
		}
		s=s+v[i];
	    t=t+v[i];
		if (s>max)
		{
			max=s;
			p=l;
			q=i-l+1;
		}
		if (t<min) 
		{
			min=t;
			p2=l2;
			q2=i-l2+1;
		}
		
	}
	if (max>st-min) 
		printf("%d %d %d",max,p,q);
	else 
		printf("%d %d %d",st-min,p2+q2,n-q2);
	return 0;
}