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