Pagini recente » Cod sursa (job #446953) | Cod sursa (job #2223790) | Cod sursa (job #1495596) | Cod sursa (job #2964576) | Cod sursa (job #329969)
Cod sursa(job #329969)
#include<cstdio>
#define N 400002
short int v[N];
int n,max=-N/2,pi,p,l,s[N];
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];
s[i]=s[i-1]+v[i];
}
v[n+n]=0;
for (int i=n+1; i<=n+n-1; ++i)
s[i]=s[i-1]+v[i];
}
void sume()
{
for (int i=1; i<=n; ++i)
{
int j=i;
while (j-i+1<=n)
{
int w=s[j]-s[i-1];
if (max<w)
{
max=w;
p=i;
l=j-i+1;
}
else
if (max==w){
if (p>i)
{
p=i;
l=j-i+1;
}}
else
if (p==i){
if (l>j-i+1)
l=j-i+1;}
++j;
}
}
printf("%d %d %d",max,p,l);
}
int main()
{
citire();
sume();
return 0;
}