Cod sursa(job #179357)

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