Pagini recente » Cod sursa (job #2450319) | Cod sursa (job #1331849) | Cod sursa (job #1968566) | Cod sursa (job #1942579) | Cod sursa (job #2757147)
#include <fstream>
using namespace std;
const int NMAX=200000;
int v[NMAX+5];
ifstream fin("buline.in");
ofstream fout("buline.out");
int main()
{
int n,smaxcirc,stot,smin,i,j,ic,sc,st,dr,pozi1,nr1,nr2,smax,aux,aux1,x,s;
fin>>n;
s=0;
for(i=1;i<=n;i++)
{
fin>>v[i]>>x;
if(x==0)
v[i]=v[i]*(-1);
s+=v[i];
}
sc=smax=v[1];
st=ic=dr=1;
for(i=2;i<=n;i++)
{
if(sc+v[i]<v[i])
{
sc=v[i];
ic=i;
}
else
sc+=v[i];
if(sc>smax)
{
smax=sc;
st=ic;
dr=i;
}
}
aux=st;
aux1=dr;
sc=smin=v[1];
st=ic=dr=1;
for(i=2;i<=n;i++)
{
if(sc+v[i]>=v[i])
{
sc=v[i];
ic=i;
}
else
sc+=v[i];
if(sc<smin)
{
smin=sc;
st=ic;
dr=i;
}
}
smaxcirc=s-smin;
pozi1=dr+1;
nr1=n-(dr-st+1);
if(smax>smaxcirc)
fout<<smax<<" "<<aux<<" "<<aux1-aux+1;
else
fout<<smaxcirc<<" "<<pozi1<<" "<<nr1;
return 0;
}