Pagini recente » Cod sursa (job #285724) | Cod sursa (job #82004) | Cod sursa (job #1187441) | Cod sursa (job #2497450) | Cod sursa (job #1625406)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int x, l, i, j, n, v[400005], pmax, umax, p1, p2, s2, pmin, umin, minim;
long long maxim, s, s1;
int main()
{
fin>>n;
for(i=1;i<=n;i++){
fin>>x>>p1;
if(p1==1)
v[i]=x;
else
v[i]=-x;
s+=v[i];
}
s1=v[1];maxim=s;pmax=1;umax=1;p1=1;
s2=v[1];minim=s;pmin=1;umin=1;p2=1;
for(i=2;i<=n;i++){
if(v[i]+s1>=v[i]){
s1+=v[i];
}
else
s1=v[i], p1=i;
if(s1>maxim){
maxim=s1;
umax=i;
pmax=p1;
}
if(v[i]+s2<v[i]){
s2+=v[i];
}
else
s2=v[i], p2=i;
if(s2<minim){
minim=s2;
umin=i;
pmin=p2;
}
}
if(s-minim<maxim)
{
fout<<maxim<<" "<<pmax<< " "<<umax-pmax+1;
}
else{
fout<<s-minim<<" "<<umin+1<< " "<<n-umin+pmin-1;
}
return 0;
}