#HK5454. 「UOI 2018 Stage 4 Day2」奥莉娅与平面

「UOI 2018 Stage 4 Day2」奥莉娅与平面

题目描述

题目译自 Ukrainian Olympiads in Informatics 2018 Stage 4 Day2 T4. Оля та площина

小女孩奥莉娅是一个完美的榜样:她每天都在解决各种问题。然而,在家里几乎无法专心学习,因为她有一只淘气的猫科斯蒂安,每次有机会就会捣乱。因此,当奥莉娅在生日收到一块巨大的白色笛卡尔平面作为笔记工具时,科斯蒂安立刻打算破坏这个美妙的礼物。

这块平面是一个白色的正方形,左下角坐标为 (0,0)(0, 0),右上角坐标为 (N,N)(N, N)。为了方便,奥莉娅在平面的每个角落(即点 (0,0)(0, 0)(N,0)(N, 0)(0,N)(0, N)(N,N)(N, N))各放置了一瓶墨水,然后开始编写复杂的竞赛题目。

当奥莉娅正在解决一道题目时,科斯蒂安可能会走过来「意外」打翻任意一瓶墨水,于是平面上的一个矩形区域(其对角线端点为放置墨水的点和点 (x,y)(x, y))就会被无可挽回地弄脏,全部被染成黑色。奥莉娅当然会有些生气,但也没办法——她只能重新装满墨水瓶,继续编写竞赛题目。而此时,科斯蒂安又可能再次打翻墨水,弄脏平面的另一部分区域。

有时,当奥莉娅遇到特别困难的题目时,她会决定在平面上的某个区域记下自己的想法。她总是选择一个与坐标轴平行的矩形区域作为笔记区域。当然,奥莉娅需要知道她选择的区域中有多大面积被墨水弄脏。由于她忙于解决竞赛题目,你需要帮助她完成这项任务。

编写一个程序,根据竞赛期间发生的事件信息,帮助奥莉娅计算平面中被弄脏的区域的面积。

输入格式

输入文件的第一行包含两个整数 NNQQ (1N,Q105)(1 \leq N, Q \leq 10^5),分别表示平面的尺寸和竞赛期间发生的事件数量。

接下来有 QQ 行描述事件。每行以一个数字 tt 开头,表示事件类型。如果 1t41 \leq t \leq 4,表示科斯蒂安打翻了对应的墨水瓶。此时,接下来有两个数字 xxyy (0x,yN)(0 \leq x, y \leq N),表示将被染成黑色的矩形区域的对角线端点。

第一瓶墨水位于左下角,第二瓶位于右下角,第三瓶位于左上角,第四瓶位于右上角。

如果 tt 等于 00,则接下来有 44 个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2 (0x1<x2N,0y1<y2N)(0 \leq x_1 < x_2 \leq N, 0 \leq y_1 < y_2 \leq N),表示奥莉娅选择了一个与坐标轴平行的矩形区域,其对角线端点为 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2)

保证输入文件中至少包含一个类型为 00 的事件,且猫弄脏的矩形区域面积不为零。

输出格式

对于每个类型为 00 的查询,在输出文件中单独一行输出一个整数,表示奥莉娅选择的矩形区域中被猫弄脏的部分的面积。查询的答案需按输入数据中的顺序输出。

8 5
1 2 4
2 0 1
3 3 3
4 6 6
0 1 2 7 7

10

以下是第一个样例中平面的一部分示意图。黑色矩形是被猫弄脏的平面部分,灰色区域是奥莉娅为笔记选择的区域。

6 8
1 1 1
4 5 5
0 0 0 6 6
3 3 3
2 3 3
0 1 1 5 5
2 1 5
0 0 2 6 5

2
8
17

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 55 1N,Q1001 \leq N, Q \leq 100
22 66 1N,Q10001 \leq N, Q \leq 1000t{0,1,2}t \in \{0, 1, 2\}
33 88 1N,Q10001 \leq N, Q \leq 1000
44 1414 1N,Q500001 \leq N, Q \leq 50000;类型 0 查询数量不超过 20
55 1212 1N,Q500001 \leq N, Q \leq 50000t{0,1}t \in \{0, 1\};对于所有类型 1 查询,若查询 aa 在查询 bb 之后,则 xaxbx_a \leq x_byayby_a \geq y_b
66 88 1N,Q500001 \leq N, Q \leq 50000t{0,1}t \in \{0, 1\}
77 1010 1N,Q500001 \leq N, Q \leq 50000t{0,1,2}t \in \{0, 1, 2\}
88 1313 1N,Q500001 \leq N, Q \leq 50000
99 99 t{0,1}t \in \{0, 1\}
1010 88 t{0,1,2}t \in \{0, 1, 2\}
1111 77 无附加限制