分的第一个类有问题( $B$ 中有正有负的情况)。
取 $\max$ 的前提是两种情况能取,所以要:
```cpp
if(query1(l1, r1, 0, 0) == -0x3f3f3f3f) ans = 1ll*query1(l1,r1,1,0)*query2(l2,r2,1);
else if(query1(l1, r1, 0, 1 == -0x3f3f3f3f) ans = 1ll*(-query1(l1,r1,1,1))*query2(l2,r2,0);
else ans = max(1ll*query1(l1,r1,1,0)*query2(l2,r2,1),1ll*(-query1(l1,r1,1,1))*query2(l2,r2,0))
```
by joyslog @ 2022-10-30 14:45:21