Cod sursa(job #751662)

Utilizator geniucosOncescu Costin geniucos Data 26 mai 2012 16:21:48
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<cstdio>
using namespace std;
int n,x,t,i,in,maxi,s,i1,j1,a[400002];
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
	scanf("%d",&x);
	scanf("%d",&t);
	if(t==0) a[i]=-x;
	else a[i]=x;
}
for(i=n+1;i<=2*n;i++)
	a[i]=a[i-n];
in=1;
s=a[1];
maxi=s;
i1=in;
j1=in;
for(i=2;i<=2*n;i++)
{
	if(s<=0||i-in+1>n)
	{
		if(i>n) break;
		s=a[i];
		in=i;
	}
	else s=s+a[i];
	if(s>maxi)
	{
		maxi=s;
		i1=in;
		j1=i;
	}
}
printf("%d %d %d",maxi,i1,j1-i1+1);
return 0;
}