Cod sursa(job #25057)

Utilizator tudalexTudorica Constantin Alexandru tudalex Data 4 martie 2007 10:20:18
Problema Buline Scor 20
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 9-a si gimnaziu Marime 0.72 kb
#include <stdio.h>
int v[400004];
int sum_m,sum_c,poz_i,in,sf,i,a,b,k,n;
void read_data()
{
	scanf("%d",&n);
	k=2*n;
	for (i=1;i<=n;++i)
	{
		scanf("%d %d",&b,&a);
		if (a==0) v[i]=b*-1; else v[i]=b;
		v[n+i]=v[i];
	}
}
void solve_eur()
{
	
	sum_m=v[i];
	sum_c=sum_m;
	in=1;
	sf=1;
	poz_i=1;
	for (i=2;i<=k;++i)
	{
		if ((sum_c<0) || (i-poz_i+1>n))
		{
			sum_c=v[i];
			poz_i=i;
		}
		else sum_c+=v[i];
		if (sum_c>sum_m)
		{
			sum_m=sum_c;
			in=poz_i;
			sf=i;
		}
	}
}
void print()
{
	if (sf-in+1>n) sf=n;
	if (in>n) in-=n; // Asta nu ar trebui sa se intample
	printf("%d %d %d\n",sum_m,in,sf-in+1);
}
int main()
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	read_data();
	solve_eur();
	print();
	return 0;
	
}