[IOI2018] seats 排座位
题目背景
本题为交互题,但在此请提交**完整程序**。
题目描述
你要在一个长方形大厅里举办国际编程比赛,该大厅共有 $HW$ 个座位($H$ 行 $W$ 列)。行的编号是从 $0$ 到 $H-1$,列的编号是从 $0$ 到 $W-1$。位于 $r$ 行 $c$ 列的座位用 $(r,c)$ 表示。一共邀请了 $HW$ 位参赛者,编号是从 $0$ 到 $HW-1$。你制定好了一个座位表,第 $i(0 \leq i \leq HW - 1)$ 个参赛者被安排到座位 $(R_i,C_i)$。座位表中参赛者和座位是一一对应的。
大厅中一个座位集合 $S$ 被称为是**长方形的**,如果存在整数 $r_1, r_2, c_1$ 和 $c_2$ 满足下列条件:
- $0 \leq r_1 \leq r_2 \leq H - 1$。
- $0 \leq c_1 \leq c_2 \leq W - 1$。
- $S$ 正好是所有满足 $r_1 \leq r \leq r_2$ 和 $c_1 \leq c \leq c_2$ 的座位 $(r, c)$ 的集合。
如果一个长方形座位集合包含 $k(1 \leq k \leq HW)$ 个座位,并且被分配到这个集合的参赛者的编号恰好是从 $0$ 到 $k-1$,那么该集合是**美妙的**。一个座位表的**美妙度**定义为这个表中美妙的长方形座位集合的个数。
在准备好座位表后,你会收到一些交换两个参赛者座位的请求。具体来说,有 $Q$ 个这样的请求,按时间顺序编号为 $0$ 到 $Q-1$。第 $j(0 \leq j \leq Q - 1)$ 个请求希望交换参赛者 $A_j$ 和 $B_j$ 的座位。你立即接受每个请求并更新座位表。每次更新后,你的目标是计算当前座位表的美妙度。
输入输出格式
输入格式
输入的第一行包含三个正整数 $H, W, Q$,其意义见题目描述。
接下来 $HW$ 行,每行包含两个非负整数。在这 $HW$ 行中,第 $i$ 行的两个整数分别表示 $R_{i - 1}, C_{i - 1}$,即编号为 $i - 1$ 的参赛者初始座位的行和列。
接下来 $Q$ 行,每行包含两个非负整数。在这 $Q$ 行中,第 $j$ 行的两个整数分别表示 $A_{j - 1}, B_{j - 1}$,即在编号为 $j - 1$ 的请求中希望被交换座位的两位参赛者的编号。
输出格式
输出共 $Q$ 行,每行包含一个整数,第 $i$ 行的整数表示按时间顺序处理完编号为 $i - 1$ 的交换请求之后当前座位表的美妙度。
输入输出样例
输入样例 #1
2 3 2
0 0
1 0
1 1
0 1
0 2
1 2
0 5
0 5
输出样例 #1
3
4
输入样例 #2
1 5 3
0 0
0 1
0 2
0 3
0 4
0 1
0 3
4 0
输出样例 #2
5
3
2
说明
**限制条件**
- $1 \leq H$
- $1 \leq W$
- $HW \leq 1, 000, 000$
- $0 \leq R_i \leq H - 1(0 \leq i \leq HW - 1)$
- $0 \leq C_i \leq W - 1(0 \leq i \leq HW - 1)$
- $(R_i, C_i) \neq (R_j, C_j)(0 \leq i < j \leq HW - 1)$
- $1 \leq Q \leq 50, 000$
- $0 \leq A_j \leq HW - 1(0 \leq j \leq Q - 1)$
- $0 \leq B_j \leq HW - 1(0 \leq j \leq Q - 1)$
- $A_j \neq B_j(0 \leq j \leq Q - 1)$
**子任务**
- 1.(5 分) $HW \leq 100$,$Q \leq 5, 000$
- 2.(6 分) $HW \leq 10, 000$,$Q \leq 5, 000$
- 3.(20 分) $H \leq 1, 000$,$W \leq 1, 000$,$Q \leq 5, 000$
- 4.(6 分) $Q \leq 5, 000$,$|A_j - B_j| \leq 10, 000(0 \leq j \leq Q - 1)$
- 5.(33 分) $H = 1$
- 6.(30 分) 无附加限制条件