Cod sursa(job #500570)

Utilizator crazzytudTudor Popa crazzytud Data 12 noiembrie 2010 15:28:51
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
int v[200001];
int main()
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	int lim,s=0,lmax=0,smax=0,pmax=0,p=0,n,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		scanf("%d",&p);
		if(p==0)
			v[i]*=-1;
	}
	v[0]=v[n];
	
	lim=n*2;p=1;
	for(i=1;i<=lim;++i)
	{
		if(s<0)
		{
			s=0;
			if(i>n)
				break;
			p=i%n;
		}
		s+=v[i%n];
		if(s>smax&&i-p+1<=n)
		{
			smax=s;
			pmax=p;
			lmax=i-p+1;
			if(i==0)
				lmax+=n;
		}
	}
	printf("%d %d %d",smax,pmax,lmax);
	return 0;
}