Pagini recente » Cod sursa (job #2744235) | Cod sursa (job #3156889) | Cod sursa (job #1801500) | Clasament ffcxzczxczx | Cod sursa (job #2734264)
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int v[200005];
int main()
{
int n,i,scmax,sc,st,stmax,drmax,scmax2,scmin,stmin,drmin,x,y,sct,p,l;
sct=0;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x>>y;
if(y==0)
v[i]=-1*x;
else
v[i]=x;
sct=sct+v[i];
}
sc=scmax=scmin=v[1];
st=stmax=drmax=stmin=drmin=1;
for(i=2;i<=n;i++)
{
if(sc+v[i]<v[i])
{
sc=v[i];
st=i;
}
else
sc=sc+v[i];
if(sc>scmax)
{
scmax=sc;
stmax=st;
drmax=i;
}
}
p=stmax;
l=drmax-stmax+1;
for(i=2;i<=n;i++)
{
if(sc+v[i]>v[i])
{
sc=v[i];
st=i;
}
else
sc=sc+v[i];
if(sc<scmin)
{
scmin=sc;
stmin=st;
drmin=i;
}
}
scmax2=sct-scmin;
if(scmax2>scmax)
{
scmax=scmax2;
p=drmin+1;
l=n-(drmin-stmin+1);
}
fout<<scmax<<" "<<p<<" "<<l;
return 0;
}