日本政府计划在 2020 年将入境游客人数增加到四千万,并在 2030 年增加到六千万。要实现这一目标,不仅需要提高旅游吸引力,进一步发展旅游基础设施也至关重要。
交通方面的一种改进方案是提供极长和/或极宽的车辆,一次运载更多的乘客。然而,车辆过大可能会导致紧急情况下疏散所有乘客所需的时间过长。你需要帮助估算所需的时间。
假设车辆的座位安排如下:
- 中央过道贯穿整辆车,直接连接到车厢后部中央的紧急出口。
- 过道两侧各有相同数量的乘客座位排。
所要求的粗略估算基于一个简单的分步模型。所有乘客最初都在各自的座位上,每一步他们可以进行以下移动之一:
- 座位上的乘客可以移动到朝向过道的相邻座位。位于过道旁座位的乘客可以直接横向移动到过道上。
- 过道上的乘客可以向后移动一排座位。如果乘客位于紧急出口前,即位于最后一排座位旁,他/她可以离开车厢。
移动的目标座位或过道位置必须是空的;要么在这一步之前那里没有其他乘客,要么那里的乘客在同一步中移动到了另一个位置从而腾出了空间。当两名或多名乘客满足同一位置的移动条件时,只有其中一人可以移动,其他人必须保持在原位等待。
图 C.1 的最左侧部分描绘了样例输入 1 中小型车辆的座位安排。该车有五排座位,过道两侧各有两个座位,总共二十个座位。图中还显示了七名乘客的初始位置。
图 C.1 的另外两幅图显示了第一步和第二步之后乘客可能的位置。乘客的移动用粗箭头表示。注意,前排的两名乘客在第一步中必须等待空位,第二排的一名乘客必须在下一步中等待。
你的任务是编写一个程序,根据座位安排和乘客的初始位置,计算所有乘客离开车厢所需的最少步数。
图 C.1. 简单模型
输入格式
输入包含单个测试用例,格式如下:
$r \ s \ p$ $i_1 \ j_1$ $\vdots$ $i_p \ j_p$
其中,$r$ 是乘客座位排数,$s$ 是过道每侧的座位数,$p$ 是乘客人数。它们是满足 $1 \le r \le 500$,$1 \le s \le 500$ 以及 $1 \le p \le 2rs$ 的整数。
接下来的 $p$ 行给出了乘客的初始座位位置。第 $k$ 行的 $i_k$ 和 $j_k$ 表示第 $k$ 名乘客的座位位于第 $i_k$ 排,且是该排的第 $j_k$ 个座位。这里,行和座位从前到后、从左到右计数,均从 1 开始。它们满足 $1 \le i_k \le r$ 和 $1 \le j_k \le 2s$。乘客位于不同的座位上,即对于 $k \neq l$,满足 $i_k \neq i_l$ 或 $j_k \neq j_l$。
输出格式
输出应为一行,包含一个整数,表示所有乘客离开车厢所需的最少步数。
样例
样例输入 1
5 2 7 1 1 1 2 1 3 2 3 2 4 4 4 5 2
样例输出 1
9
样例输入 2
500 500 16 1 1 1 2 1 999 1 1000 2 1 2 2 2 999 2 1000 3 1 3 2 3 999 3 1000 499 500 499 501 499 999 499 1000
样例输出 2
1008