题号:NC19839
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
庭有枇杷树,吾妻死之年所手植也,今已亭亭如盖矣。
矩梯形是尝最好之形。
孩提时,尝共之植枇杷树。
今人亡琴在,其只记在何处栽之,而不知某梯形内凡几树。
其得君,其小仆,请告之所欲知梯形内凡几树。
换言之,你需要在一个平面直角坐标系中支持以下两个操作:
1. 将点 (x,y) 的权值加 1
2. 询问一个
直角梯形内所有点的权值和,即以 (x
1,y
1) 为左下角,(x
1,y
1+d) 为左上角, (x
2,y
1+d) 为右上角,(x
2+d,y
1) 为右下角形成的直角梯形。直角梯形的边界也计入答案。
你可以认为所有活动都在坐标系的第一象限且不与坐标轴相交。
输入描述:
第一行一个整数 n,表示接下来有 n 个操作。
接下来 n 行,每行的格式为 1 x y 或 2 x1 y1 x2 d。
如果第一个数为 1,表示将 (x,y) 的权值加 1。
否则为询问。
输出描述:
对于每个询问,输出对应的直角梯形内部的点权和。
示例1
输入
复制
6
1 1 2
1 1 3
1 3 2
2 1 2 2 1
1 3 4
2 1 2 3 2
备注:
n<=100000,1<=x1,x2,y1,d<=109
数据保证 x1<x2
注意,x2+d,y1+d有可能大于109
保证数据全部随机生成