【2017】列队
类型:程序题

题目描述

Sylvia 所在的方阵有 $n$ 行 $m$ 列共 $n \times m$ 名学生,初始时教官按照从前到后、从左到右的顺序给学生从 $1$ 到 $n \times m$ 编号,即第 $i$ 行第 $j$ 列的学生编号为 $(i-1) \times m + j$。

一天内共发生 $q$ 次离队事件,每次事件用数对 $(x,y)$ 描述,表示当时第 $x$ 行第 $y$ 列的学生离队:

  1. 学生离队后先执行向左看齐指令:第一列保持不动,所有学生向左填补空位,最终空位移动到第 $x$ 行第 $m$ 列。
  2. 再执行向前看齐指令:第一行保持不动,所有学生向前填补空位,最终空位移动到第 $n$ 行第 $m$ 列。
  3. 离队的学生最终填补到第 $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)$:编号为 $1$ 的学生离队,向左看齐后第一行变为 $[2]$,空位移动到 $(1,2)$;向前看齐后第 $2$ 列变为 $[2,4]$,空位移动到 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵变为 $\begin{bmatrix}2 & 4 \\3 & 1\end{bmatrix}$,输出 $1$。
  2. 第二次事件 $(2,2)$:编号为 $1$ 的学生离队,向左看齐后第二行变为 $[3]$,空位移动到 $(2,2)$;向前看齐后第 $2$ 列不变,空位仍在 $(2,2)$;最后 $1$ 填补到 $(2,2)$,方阵不变,输出 $1$。
  3. 第三次事件 $(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$ 无
代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?