Pagini recente » Cod sursa (job #1334584) | Cod sursa (job #2292218) | Cod sursa (job #2730030) | Cod sursa (job #1746735) | Cod sursa (job #2119170)
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int n,i,x,S,s,p,pmax,pmin,lmax,lmin,maxim,minim;
int v[200005];
int main(){
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i]>>x;
if(x==0){
v[i]*=-1;
}
S+=v[i];
}
for(int i=1;i<=n;i++){
if(s+v[i]>=v[i]){
s+=v[i];
}
else{
s=v[i];
p=i;
}
if(maxim<s){
maxim=s;
pmax=i;
lmax=p;
}
}
s=0;
p=0;
for(int i=1;i<=n;i++){
if(s+v[i]<=v[i]){
s+=v[i];
}
else{
s=v[i];
p=i;
}
if(minim>s){
minim=s;
pmin=i;
lmin=p;
}
}
if(maxim<S-minim){
fout<<S-minim<<" "<<pmin+1<<" "<<n-pmin+lmin-1;
}
else{
fout<<maxim<<" "<<lmax<<" "<<pmax-lmax+1;
}
return 0;
}