Pagini recente » Cod sursa (job #2111849) | Cod sursa (job #2274717) | Cod sursa (job #116042) | Cod sursa (job #2589730) | Cod sursa (job #3166121)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
int v[200005],i,l1,l2,i1,i2,n,x,y,l3,l4,i3,i4;
long long s1,s2,s3,s4,s5;
int main()
{
cin>>n;
for(i=1; i<=n; i++)
{
cin>>x>>y;
if(y==0)
v[i]=-x;
else
v[i]=x;
s3+=v[i];
}
s1=s2=s5=s4=v[1];
l1=l2=1;
i1=i2=1;
for(i=2; i<=n; i++)
{
if(s1+v[i]>v[i])
{
l1++;
s1+=v[i];
}
else
{
s1=v[i];
i1=i;
l1=1;
}
if(s5==s1)
if(i4==i1)
if(l4>l1)
{
s5=s1;
i4=i1;
l4=l1;
}
if(s5<s1)
{
s5=s1;
i4=i1;
l4=l1;
}
if(s2+v[i]<v[i])
{
l2++;
s2+=v[i];
}
else
{
s2=v[i];
i2=i;
l2=1;
}
if(s2==s4)
if(i3==i2)
if(l3>l2)
{
s4=s2;
i3=i2;
l3=l2;
}
if(s2<s4)
{
s4=s2;
i3=i2;
l3=l2;
}
}
if(s3-s4>s5)
cout<<s3-s4<<" "<<i3+l3<<" "<<n-l3;
else
cout<<s5<<" "<<i4<<" "<<l4;
return 0;
}