Pagini recente » Cod sursa (job #1043728) | Cod sursa (job #401137) | Cod sursa (job #32413) | Cod sursa (job #2864813) | Cod sursa (job #26161)
Cod sursa(job #26161)
#include <stdio.h>
#define maxn 400010
#define maxv -10000
int n,s,p;
short a[maxn];
int sol,pos,l;
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d ",&n);
int i,semn;
for (i=1;i<=n;i++)
{
scanf("%d %d ",&a[i],&semn);
if (!semn) a[i]=-a[i];
}
for (i=1;i<=n;i++) a[n+i]=a[i];
n=n*2;
s=maxv;
for (i=1;i<=n;i++)
{
if (s<0)
{
s=0;
p=i;
}
s+=a[i];
if (i-p==n/2)
{
s-=a[p];
p++;
while ((a[p]<0) && (p<=i))
{
s-=a[p];
p++;
}
}
if ((s>sol) && (p<=n/2))
{
sol=s;
pos=p;
l=i-pos+1;
}
}
printf("%d %d %d\n",sol,pos,l);
return 0;
}