Cod sursa(job #179377)

Utilizator mihai0110Bivol Mihai mihai0110 Data 15 aprilie 2008 20:48:17
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#define MAX 2000000000
#define MAXN 1<<18
long long n,i,sum,x,mod,sol=-MAX,pozsol,lgsol;
long long s[MAXN],t[MAXN],a[MAXN];
int main(void)
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	scanf("%lld",&n);
	t[0]=-MAX;
	for(i=1;i<=n;i++)
	{
		scanf("%lld%lld",&x,&mod);
		if(mod==0)
			x=-x;
		a[i]=x;
		s[i]=s[i-1]+x;
		t[i]=s[i];
		if(t[i-1]>s[i])
			t[i]=t[i-1];
	}
	t[0]=0;
	for(i=1;i<=n;i++)
		if(s[n]-s[i-1]+t[i-1]>sol)
		{
			sol=s[n]-s[i-1]+t[i-1];
			pozsol=i;
		}
	sum=0;
	for(i=pozsol;sum!=sol;i++)
	{
		if(i>n)
			i-=n;
		sum=sum+a[i];
		lgsol++;
	}
	printf("%lld %lld %lld",sol,pozsol,lgsol);
	return 0;
}