Pagini recente » Cod sursa (job #3193434) | Cod sursa (job #128165) | Cod sursa (job #1418337) | Cod sursa (job #2630438) | Cod sursa (job #868123)
Cod sursa(job #868123)
#include<fstream>
//#include<iostream>
using namespace std;
int s[6000001],t[6000001],N,x,ma,asf=1,as=1,bs=1,atf=1,att=1,bt=1;
int main()
{
ifstream cin("buline.in");
ofstream cout("buline.out");
cin>>N;
s[0]=0;
for(int i=1;i<=N;++i)
{
cin>>s[i]>>x;
if(x==0) s[i]=-s[i];
s[i]=s[i-1]+s[i];
t[i]=-s[i];
}
int mis=0;
int mit=0;
int mas=s[1];
int mat=t[1];
for(int i=1;i<=N;++i)
{
if(s[i-1]<mis)
{
mis=s[i-1];
as=i;
}
if(s[i]-mis>mas)
{
mas=s[i]-mis;
bs=i;
asf=as;
}
if(t[i-1]<mit)
{
mit=t[i-1];
att=i;
}
if(t[i]-mit>mat)
{
mat=t[i]-mit;
bt=i;
atf=att;
}
}
x=bs-asf+1;
if(s[N]+mat>mas)
{
mas=s[N]+mat;
asf=bt+1;
x=N-1-bt+atf;
}
cout<<mas<<" "<<asf<<" "<<x;
return 0;
}