【2017】列队
题目描述
Sylvia 所在的方阵有 $n$ 行 $m$ 列共 $n \times m$ 名学生,初始时教官按照从前到后、从左到右的顺序给学生从 $1$ 到 $n \times m$ 编号,即第 $i$ 行第 $j$ 列的学生编号为 $(i-1) \times m + j$。
一天内共发生 $q$ 次离队事件,每次事件用数对 $(x,y)$ 描述,表示当时第 $x$ 行第 $y$ 列的学生离队:
- 学生离队后先执行向左看齐指令:第一列保持不动,所有学生向左填补空位,最终空位移动到第 $x$ 行第 $m$ 列。
- 再执行向前看齐指令:第一行保持不动,所有学生向前填补空位,最终空位移动到第 $n$ 行第 $m$ 列。
- 离队的学生最终填补到第 $n$ 行第 $m$ 列的空位,每个学生的编号永久不变。
请你计算每次离队事件中,离队学生的编号。
输入描述
输入共 $q+1$ 行:
- 第 $1$ 行包含 $3$ 个用空格分隔的正整数 $n, m, q$,分别表示方阵的行数、列数、离队事件总数。
- 接下来 $q$ 行,每行两个整数 $x, y$,表示本次离队的学生当时位于第 $x$ 行第 $y$ 列,数据保证 $1 \leq x \leq n, 1 \leq y \leq m$。
输出描述
按照事件输入的顺序,每行输出一个整数,表示对应离队事件中学生的编号。
输入样例1
2 2 3
1 1
2 2
1 2
输出样例1
1
1
4
样例1解释
初始方阵为: $$\begin{bmatrix}1 & 2 \\3 & 4\end{bmatrix}$$
- 第一次事件 $(1,1)$:编号为 $1$ 的学生离队,向左看齐后第一行变为 $[2]$,空位移动到 $(1,2)$;向前看齐后第 $2$ 列变为 $[2,4]$,空位移动到 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵变为 $\begin{bmatrix}2 & 4 \\3 & 1\end{bmatrix}$,输出 $1$。
- 第二次事件 $(2,2)$:编号为 $1$ 的学生离队,向左看齐后第二行变为 $[3]$,空位移动到 $(2,2)$;向前看齐后第 $2$ 列不变,空位仍在 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵不变,输出 $1$。
- 第三次事件 $(1,2)$:编号为 $4$ 的学生离队,向左看齐后第一行变为 $[2]$,空位移动到 $(1,2)$;向前看齐后第 $2$ 列变为 $[1,3]$,空位移动到 $(2,2)$;最后 $4$ 填补到 $(2,2)$,方阵变为 $\begin{bmatrix}2 & 1 \\3 & 4\end{bmatrix}$,输出 $4$。
数据规模与约定
| 测试点编号 | $n$ | $m$ | $q$ | 其他约定 |
|---|---|---|---|---|
| 1~6 | $\leq 1000$ | $\leq 1000$ | $\leq 500$ | 无 |
| 7~10 | $\leq 5 \times 10^4$ | $\leq 5 \times 10^4$ | $\leq 500$ | 无 |
| 11~12 | $=1$ | $\leq 10^5$ | $\leq 10^5$ | 所有事件 $x=1$ |
| 13~14 | $=1$ | $\leq 3 \times 10^5$ | $\leq 3 \times 10^5$ | 所有事件 $x=1$ |
| 15~16 | $\leq 3 \times 10^5$ | $\leq 3 \times 10^5$ | $\leq 3 \times 10^5$ | 所有事件 $x=1$ |
| 17~18 | $\leq 10^5$ | $\leq 10^5$ | $\leq 10^5$ | 无 |
| 19~20 | $\leq 3 \times 10^5$ | $\leq 3 \times 10^5$ | $\leq 3 \times 10^5$ | 无 |
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析