Pagini recente » Cod sursa (job #867615) | Cod sursa (job #135511) | Cod sursa (job #2439960) | Cod sursa (job #567449) | Cod sursa (job #29381)
Cod sursa(job #29381)
#include <stdio.h>
int T[400010];
int S_Max,S_C,begin,end,poz_beg,i,n,x,y;
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
{
scanf("%d %d",&x,&y);
if (y==0) T[i]=-x;
else T[i]=x;
}
for (i=n+1;i<=2*n-1;++i)
T[i]=T[i-n];
n=2*n-1;
S_Max=T[1];
S_C=S_Max;
poz_beg=1;
begin=1;
end=1;
for (i=2;i<=n;++i)
{
if (S_C<0)
{
S_C=T[i];
poz_beg=i;
}
else
S_C=S_C+T[i];
if (S_Max<S_C)
{
S_Max=S_C;
begin=poz_beg;
end=i;
}
if (S_Max==S_C && i-poz_beg<end-begin)
{
begin=poz_beg;
end=i;
}
}
printf("%d %d %d\n",S_Max, begin, end-begin+1);
}