Pagini recente » Cod sursa (job #3222966) | Cod sursa (job #1881359) | Cod sursa (job #2852108) | Cod sursa (job #2583095) | Cod sursa (job #1738501)
#include<bits/stdc++.h>
#define INF INT_MAX
using namespace std;
int maxim=-INF,n,x,c,v[400005],s[400005],m,ls,ld,imin;
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&x,&c);
if (c) v[i]=x;
else v[i]=-x;
}
for(int i=n+1;i<=2*n;i++)
{
v[i]=v[i-n];
}
s[0]=0;
m=0;
for(int i=1;i<=2*n;i++)
{
// scanf("%lld",&x);
s[i]=s[i-1]+v[i];
if ((s[i]-m)>maxim && (i-imin)<=n)
{
maxim=s[i]-m;
ls=imin+1;
ld=i;
}
if (s[i]<m) m=s[i],imin=i;
}
printf("%d %d %d\n",maxim,ls,ld-ls+1);
return 0;
}