Pagini recente » Cod sursa (job #899052) | Cod sursa (job #1701875) | Cod sursa (job #167633) | Cod sursa (job #1854268) | Cod sursa (job #179377)
Cod sursa(job #179377)
#include<stdio.h>
#define MAX 2000000000
#define MAXN 1<<18
long long n,i,sum,x,mod,sol=-MAX,pozsol,lgsol;
long long s[MAXN],t[MAXN],a[MAXN];
int main(void)
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%lld",&n);
t[0]=-MAX;
for(i=1;i<=n;i++)
{
scanf("%lld%lld",&x,&mod);
if(mod==0)
x=-x;
a[i]=x;
s[i]=s[i-1]+x;
t[i]=s[i];
if(t[i-1]>s[i])
t[i]=t[i-1];
}
t[0]=0;
for(i=1;i<=n;i++)
if(s[n]-s[i-1]+t[i-1]>sol)
{
sol=s[n]-s[i-1]+t[i-1];
pozsol=i;
}
sum=0;
for(i=pozsol;sum!=sol;i++)
{
if(i>n)
i-=n;
sum=sum+a[i];
lgsol++;
}
printf("%lld %lld %lld",sol,pozsol,lgsol);
return 0;
}