错误如下:
1、维护区间最值最小要开-1e18,最大要1e18
2、贪心思路有问题,请参考以下代码
int maxb=tree_findb1(1,l2,r2);
int minb=tree_findb2(1,l2,r2);
int maxa=tree_finda1(1,l1,r1);
int mina=tree_finda4(1,l1,r1);
int zmina=tree_finda2(1,l1,r1);
int fmaxa=tree_finda3(1,l1,r1);
if(maxa<=0){
if(maxb<=0){
ypy=mina*maxb;
}
else{
ypy=maxa*maxb;
}
}
else if(mina>=0){
if(minb>=0){
ypy=maxa*minb;
}
else{
ypy=mina*minb;
}
}
else{
if(maxb<=0){
ypy=mina*maxb;
}
else if(minb>=0){
ypy=maxa*minb;
}
else ypy=max(zmina*minb,fmaxa*maxb);
}