Pagini recente » Cod sursa (job #1247405) | Cod sursa (job #1470683) | Cod sursa (job #1079030) | Cod sursa (job #1707376) | Cod sursa (job #571476)
Cod sursa(job #571476)
#include <cstdio>
#define Nmax 200000
using namespace std;
FILE *fin=freopen("buline.in","r",stdin);
FILE *fout=freopen("buline.out","w",stdout);
int a[2*Nmax+2],s,n,p1,l1,l2,p2,s2;
void citire()
{
int t=0;
scanf("%d",&n);
for(int i=0;i<n;++i)
{
scanf("%d %d",&a[i],&t);
if(t==0)
a[i]=(-(a[i]));
}
for(int i=0;i<n;++i)
a[i+n]=a[i];
}
void suma()
{
int m=2*n;
s=a[0];
p1=0;
l1=1;
for(int i=1;i<m;++i)
{
if(s+a[i]>a[i])
{
s+=a[i];
l1++;
}
else
{
l1=1;
p1=i;
s=a[i];
}
if(s>s2)
{
if(l1>n)
break;
p2=p1;
l2=l1;
s2=s;
}
}
printf("%d %d %d\n",s2,p2+1,l2);
}
int main()
{
citire();
suma();
return 0;
}