Pagini recente » Cod sursa (job #1264237) | Cod sursa (job #130706) | Cod sursa (job #2248990) | Cod sursa (job #388503) | Cod sursa (job #3165512)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout("buline.out");
long long n,i,V[200002],maxim,s,stmax,drmax,stmin,drmin,S,x,suma,minim;
int main ()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>V[i]>>s;
if(s==0)
V[i]=-V[i];
suma=suma+V[i];
}
s=1;
stmax=1;
drmax=1;
S=V[1];
maxim=S;
for(i=2;i<=n;i++)
{
//fout<<V[i]<<" ";
if(S+V[i]>=V[i])
S+=V[i];
else
{
S=V[i];
s=i;
}
if(S>maxim)
{
maxim=S;
drmax=i;
stmax=s;
}
}
s=1;
stmin=1;
drmin=1;
S=V[1];
minim=S;
for(i=2;i<=n;i++)
{
//fout<<V[i]<<" ";
if(S+V[i]<=V[i])
S+=V[i];
else
{
S=V[i];
s=i;
}
if(S<minim)
{
minim=S;
drmin=i;
stmin=s;
}
}
if(maxim>suma-minim)
fout<<maxim<<" "<<stmax<<" "<<drmax-stmax+1;
else
fout<<suma-minim<<" "<<drmin+1<<" "<<n-(drmin-stmin+1);
return 0;
}