Pagini recente » Cod sursa (job #1975594) | Cod sursa (job #1450286) | Cod sursa (job #2395577) | Cod sursa (job #1692239) | Cod sursa (job #2547709)
#include<fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n,x,sum_tot,smax,poz,drM,stM,maxim,minim=(1<<32),stm,drm,smin;
int v[200010];
int main(){
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i]>>x;
if(!x){
v[i]*=(-1);
}
sum_tot+=v[i];
}
for(int i=1;i<=n;i++){
if(smax+v[i]>=v[i]){
smax+=v[i];
}
else{
smax=v[i];
poz=i;
}
if(maxim<smax){
maxim=smax;
drM=i;
stM=poz;
}
}
poz=0;
for(int i=1;i<=n;i++){
if(smin+v[i]<=v[i]){
smin+=v[i];
}
else{
smin=v[i];
poz=i;
}
if(minim>smin){
minim=smin;
drm=i;
stm=poz;
}
}
if(maxim>sum_tot-minim){
fout<<maxim<<" "<<stM<<" "<<drM-stM+1;
}
else{
fout<<sum_tot-minim<<" "<<drm+1<<" "<<n-drm+stm-1;
}
return 0;
}