#23. [ABC406D] Garbage Removal

[ABC406D] Garbage Removal

原题链接

题目描述

有一个 HHWW 列的网格,从上往下数第 ii 行、从左往右数第 jj 列的单元格记为单元格 (i,j)(i, j)

网格上有 NN 个垃圾,第 ii 个垃圾掉落在单元格 (Xi,Yi)(X_i, Y_i) 上。

给定 QQ 个查询,请依次处理并求出每个查询的答案。每个查询是以下两种类型之一:

  • 类型 11:以 1 x 的格式给出。求出网格第 xx 行掉落的垃圾数量作为答案。之后,第 xx 行掉落的所有垃圾都被丢弃,并从网格上移除。
  • 类型 22:以 2 y 的格式给出。求出网格第 yy 列掉落的垃圾数量作为答案。之后,第 yy 列掉落的所有垃圾都被丢弃,并从网格上移除。

输入格式

输入按以下格式从标准输入给出。

HH WW NN\\
X1X_1 Y1Y_1\\
X2X_2 Y2Y_2\\
\vdots\\
XNX_N YNY_N\\
QQ\\
query1\text{query}_1\\
query2\text{query}_2\\
\vdots\\
queryQ\text{query}_Q

这里,queryi\text{query}_i 是第 ii 个查询,按以下任一格式给出。

11 xx

22 yy

输出格式

输出 QQ 行。第 ii 行输出第 ii 个查询的答案。

3 4 5
1 2
1 3
3 4
3 1
2 2
5
1 1
1 2
2 2
2 4
1 2
2
1
0
1
0
1 2 1
1 2
7
2 1
2 1
2 1
2 1
2 1
2 1
2 1
0
0
0
0
0
0
0
4 4 16
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4
7
2 1
1 1
2 2
1 2
2 3
1 3
2 4
4
3
3
2
2
1
1

提示

「数据范围」

  • 1H,W,N2×1051 \leq H, W, N \leq 2 \times 10^5
  • 1XiH1 \leq X_i \leq H
  • 1YiW1 \leq Y_i \leq W
  • iji \neq j 时,(Xi,Yi)(Xj,Yj)(X_i, Y_i) \neq (X_j, Y_j)
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 对于类型 11 的查询,1xH1 \leq x \leq H
  • 对于类型 22 的查询,1yW1 \leq y \leq W
  • 输入的所有值均为整数

「样例解释 1」

开始时,垃圾掉落在单元格 (1,2),(1,3),(3,4),(3,1),(2,2)(1, 2), (1, 3), (3, 4), (3, 1), (2, 2) 上。

对于第 11 个查询,第 11 行掉落的垃圾是单元格 (1,2)(1, 2)(1,3)(1, 3) 上的垃圾,共 22 个,所以答案是 22。这两个垃圾被丢弃,剩下的垃圾是单元格 (3,4),(3,1),(2,2)(3, 4), (3, 1), (2, 2) 上的垃圾。

对于第 22 个查询,第 22 行掉落的垃圾是单元格 (2,2)(2, 2) 上的垃圾,共 11 个,所以答案是 11。这个垃圾被丢弃,剩下的垃圾是单元格 (3,4),(3,1)(3, 4), (3, 1) 上的垃圾。

对于第 33 个查询,第 22 列没有掉落的垃圾,所以答案是 00

对于第 44 个查询,第 44 列掉落的垃圾是单元格 (3,4)(3, 4) 上的垃圾,共 11 个,所以答案是 11。这个垃圾被丢弃,剩下的垃圾是单元格 (3,1)(3, 1) 上的垃圾。

对于第 55 个查询,第 22 行没有掉落的垃圾,所以答案是 00