```cpp
if(r1 < l2){
Node a = query(1,l1,r1),b = query(1,l2,r2),c = query(1,r1+1,l2-1);
cout << (a.rmx+c.sum+b.lmx) << '\n';
}
else{
int g = query(1,l2,r1).tmx;
if(r2 > r1) g = max(g,query(1,l1,r1).rmx + query(1,r1,r2).lmx - a[r1]);
if(l2 > l1) g = max(g,query(1,l1,l2).rmx + query(1,l2,r2).lmx - a[l2]);
cout << g << '\n';
}
```
分讨有点问题,你可以看看我的
by MnZn @ 2023-09-01 12:35:22
我写线段树区间是左闭右闭的
by MnZn @ 2023-09-01 12:37:21
但是
> contains 4 numbers x1, y1, x2 y2.
你读了题吗
by MnZn @ 2023-09-01 12:38:20
@[XHY20180718](/user/399475)
by MnZn @ 2023-09-01 12:38:34
@[MnZn](/user/632955) 能给完整代码吗,你的l1l2r1r2跟我的可能不是一个东西
by XHY20180718 @ 2023-09-01 13:40:21
@[MnZn](/user/632955) 读题了。
我的l1~l2表示l的区间,r1~r2表示r的区间。
by XHY20180718 @ 2023-09-01 13:41:34
@[MnZn](/user/632955) 给个Hack也行,谢谢。
by XHY20180718 @ 2023-09-01 13:59:25
此贴结束累
by XHY20180718 @ 2023-09-01 17:23:18