银老板的游戏
题号:NC54307
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

银灰,你的盟友,前来助力。你不会让我失望的,对吗。

众所周知,银老板喜欢爬猫爬架,还喜欢和博士下棋。

这一天,银灰又来到宿舍找Dr.
消磨时间尚有更好的方法。想不想尝试一下?
然后,你掏出了棋盘,结果银老板制止了你,你娇羞(划掉)不解的看向银灰,银灰从背后取出一张硕大的网格图
随即,银老板向你介绍了游戏规则
银灰会用他的拐杖在棋盘上画若干个矩形,当然,也有可能擦除之前画的某个矩形
同时,银灰会向你抛出若干个问题,你需要正确回答他的问题,否则你将会失去来自喀兰之主的一份大礼
由于银灰的问题实在来的太快太难了,你需要设计一个程序解决他的问题

输入描述:

第一行1个整数,Q,表示操作的数量

接下来Q行

若输入为1 a b x y,表示银老板用拐杖画了一个左下角坐标为(a,b),右上角坐标为(x,y)的矩形(保证合法)

若输入为2 x,表示银老板擦除了他在第x次操作中画下的矩形(请注意,即使这个矩形被擦除,在后面的操作中仍然具有影响,具体请看样例)

若输入为3 a b x y,表示银老板抛出了一个询问,他想知道当前网格图上有多少矩形和一个左下角为(a,b),右上角为(x,y)的矩形有交点(四个顶点也算,只有边重合也算)

输出描述:

若干行,对于每个询问,请输出对应的答案
示例1

输入

复制
5
1 1 1 2 2
1 2 2 3 3
3 3 3 4 4 
2 2
3 3 3 4 4

输出

复制
1
0

说明

对于第一次询问,第二个矩形(2,2)->(3,3)与其有交点,但是当擦除第二个矩形后,就没有矩形和它有交点了,故第二次询问输出0
示例2

输入

复制
9
1 1 2 3 4
1 2 2 3 3
1 4 4 8 8
3 3 3 4 4
3 5 3 6 8
2 2
3 2 1 6 8
2 3
3 3 1 4 5

输出

复制
3
1
2
1

说明

第一次询问,如图(虚线部分为询问的矩形)
第二次询问,如图
第一次删除,操作后如图,
第三次询问,如图
第二次删除操作,操作后如图
第四次询问,如图

备注:

Q <= 100000

a,b,x,y <= 1,000,000,000

保证在输入中的操作1和操作3中,x>a 且 y>b

保证在操作2中,x <= 该操作之前操作1的个数,且每个矩形最多只会被删除一次(但是可以重复添加)