Cod sursa(job #127821)

Utilizator za_wolfpalianos cristian za_wolf Data 25 ianuarie 2008 00:41:57
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#define NMAX 2001
long x[NMAX],a,b,i,k,l,p,poz,max,m,s,lung,n;
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,&b);
		if (b==0) x[i]=0-a;
		else
			x[i]=a;
		x[n+i]=x[i];
	}
	s=x[1];
	l=1;
	p=1;
	max=s;
	lung=l;
	poz=p;
	m=n+n;
	for (i=1;i<=m;i++)
	if (l<=n)
	{
		if (s+x[i]<0)
		{
			if (s>max)
			{
				max=s;
				poz=p;
				lung=l;
			}
			s=x[i];
			l=1;
			p=i;
		} else
		{
			if (s>max)
			{
				max=s;
				poz=p;
				lung=l;
			}
			s+=x[i];
			l++;
		}

	}
	else
	{
//		i=m;
		l=0;
		p=i;
		s=0;
	}

	printf("%ld %ld %ld\n",max,poz,lung);


	return 0;
}