Cod sursa(job #458142)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 23 mai 2010 13:49:00
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

#define file_in "buline.in"
#define file_out "buline.out"

int n,v[2*20109];

void citire()
{
	int i,x,tip;
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d", &n);
	for (i=1;i<=n;++i)
	{
		scanf("%d %d", &x, &tip);
		if (tip==0)
			v[i]=-x;
		else
			v[i]=x;
	}
	for (i=n+1;i<=2*n;++i)
		 v[i]=v[i-n];
}

void solve()
{
	int i,max,suma,poz,ind,sf;
	max=0;
	suma=-0x3f3f3f3f;
	for (i=1;i<=2*n;++i)
	{
		if (suma<0)
            suma=v[i],ind=i;
        else
            suma+=v[i];

		if (max<suma && i-ind+1<=n)
		{
			max=suma;
			poz=ind;
			sf=i-ind+1;
		}
	}
	
	printf("%d %d %d", max,poz,sf);
}

int main()
{
	citire();
	solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}