Cod sursa(job #500596)

Utilizator crazzytudTudor Popa crazzytud Data 12 noiembrie 2010 15:59:08
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
int v[200001];
int s,pmax,p,smax,stot,pmin,imin,n,i,imax;
int main()
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	int smin=10001;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		scanf("%d",&p);
		if(p==0)
			v[i]*=-1;
		stot+=v[i];
	}
	v[0]=v[n];
	
	p=1;
	for(i=1;i<=n;++i)
	{
		if(s>0)
		{
			s=0;
			p=i;
		}
		
		s+=v[i];
		
		if(s<smin)
		{
			smin=s;
			pmin=p;
			imin=i;
		}
	}
	
	for(i=1;i<=n;++i)
	{
		if(s<0)
		{
			s=0;
			p=i;
		}
		
		s+=v[i];
		
		if(s>smax)
		{
			smax=s;
			pmax=p;
			imax=i;
		}
	}
	
	
	if(smax>stot-smin)
		printf("%d %d %d",smax,pmax,imax-pmax+1);
	else
	printf("%d %d %d",stot-smin,imin+1,n-imin+pmin-1);
	return 0;
}