Cod sursa(job #409774)

Utilizator Anonymous1010Chilivercu Cristian Anonymous1010 Data 3 martie 2010 21:08:39
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>

int i,n,j,a[400002],v[400002][2],max;

int main()
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
	{
		scanf("%d %d",&a[i],&j);
		
		if(!j)
			a[i]=-a[i];
		
		a[i+n]=a[i];
	}
	
	for(i=1;i<=2*n;i++)
	{
		if(i-1-v[i-1][1]>=n)
			i=2*n+1;
		else
		{
			if(a[i]<v[i-1][0]+a[i])
			{
				v[i][0]=v[i-1][0]+a[i];
				v[i][1]=v[i-1][1];
			}
			else
			{
				v[i][0]=a[i];
				v[i][1]=i;
			}
		}
	}
	
	for(i=1;i<=2*n;i++)
		if(max<v[i][0])
		{
			max=v[i][0];
			j=i;
		}
		
	printf("%d %d %d",max,v[j][1],j-v[j][1]+1);
	
	return 0;
}