Pagini recente » Cod sursa (job #2713969) | Cod sursa (job #2197897) | Cod sursa (job #3227525) | Cod sursa (job #968939) | Cod sursa (job #329960)
Cod sursa(job #329960)
#include<cstdio>
#define N 400002
short int v[N];
int n,max=-N/2,pi,p,l;
void citire()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n; ++i)
{
short int c;
scanf("%hd%hd",&v[i],&c);
if (!c) v[i]*=-1;
v[i+n]=v[i];
}
v[n+n]=0;
}
void sume()
{
int cn=n+n-1,s=0,num=0,pi=1;
for (int i=1; i<=cn; ++i)
{
++num;
s+=v[i];
if (s>max)
{
max=s;
p=pi;
l=num;
}
else
if (s==max)
if (pi>n)
{
pi-=n;
if (!pi) pi=n;
if (pi<p)
{
p=pi;
l=num;
}
else
if (pi==p)
if (l>num)
l=num;
}
if (s<0)
{
num=0;
s=0;
pi=i+1;
}
if (num==n)
{
s=0;
num=0;
pi=i+1;
}
}
printf("%d %d %d",max,p,l);
}
int main()
{
citire();
sume();
return 0;
}