AT_abc213_c [ABC213C] Reorder Cards

题目描述

在 $H$ 行 $W$ 列的网格中,排列着 $HW$ 张卡片。 对于 $i=1,\ldots,N$,第 $A_i$ 行第 $B_i$ 列的卡片上写有数字 $i$,其余 $HW-N$ 张卡片上没有写任何数字。 对于这些卡片,可以尽可能多次重复以下两种操作: - 如果存在没有写数字的整行,则移除该行的所有卡片,并将剩余的卡片向上紧缩。 - 如果存在没有写数字的整列,则移除该列的所有卡片,并将剩余的卡片向左紧缩。 操作结束后,请求出每张写有数字的卡片最终所在的位置。可以证明,无论操作顺序如何,最终结果都是唯一确定的。

输入格式

输入通过标准输入按以下格式给出。 > $H$ $W$ $N$ > $A_1$ $B_1$ > $\vdots$ > $A_N$ $B_N$

输出格式

输出 $N$ 行。 操作结束后,数字 $i$ 所在的卡片位于上数第 $C_i$ 行、左数第 $D_i$ 列时,第 $i$ 行输出 $C_i$ 和 $D_i$,用空格隔开。

说明/提示

### 限制条件 - $1 \leq H,W \leq 10^9$ - $1 \leq N \leq \min(10^5, HW)$ - $1 \leq A_i \leq H$ - $1 \leq B_i \leq W$ - $(A_i, B_i)$ 互不相同 - 输入中的所有值均为整数 ### 样例说明 1 用 `*` 表示没有写数字的卡片。初始时,卡片的排列如下: ``` ***** ***2* *1*** ***** ``` 操作结束后,卡片的排列如下: ``` *2 1* ``` 写有 $1$ 的卡片在上数第 $2$ 行、左数第 $1$ 列,写有 $2$ 的卡片在上数第 $1$ 行、左数第 $2$ 列。 由 ChatGPT 4.1 翻译