#joi2013ho3. [joi2013ho3]現代的な屋敷 (Modern Mansion)
[joi2013ho3]現代的な屋敷 (Modern Mansion)
将以下文本翻译成中文,要求显示为markdown格式,不要渲染:
您走进了一座大宅邸。这座大宅的结构由东西南北方向的正方形房间以网格状排列组成,东西方向有 列,南北方向有 行,总共有 个房间。位于西侧的第 列 (),南侧的第 行 () 的房间用 表示。
相邻的东西南北房间之间通过位于墙壁中央的门相连。每个门可以处于关闭和不可通行状态,或者打开和可通行状态之一。当门打开时,从一个房间的中心到另一个房间的中心需要花费 1 分钟。此外,一些房间的中心有开关,如果持续按压开关 1 分钟,则会切换所有门的开闭状态。
现在,东西方向相邻的房间之间的所有门都是关闭状态,南北方向相邻的房间之间的所有门都是打开状态。你现在位于房间 的中心,希望以最短时间移动到房间 的中心。
任务
给定宅邸的大小 和 个房间的位置 ,从所有东西方向相邻的房间之间的门为关闭状态,南北方向相邻的房间之间的门为打开状态开始,编写程序计算从房间 的中心移动到房间 的中心所需的最短时间。如果无法到达房间 ,则指出这一点。
限制
宅邸在东西方向上的房间数量
宅邸在南北方向上的房间数量
拥有开关的房间数量
开关所在房间的东西位置
开关所在房间的南北位置
输入
从标准输入中读取以下数据:
- 第一行包含整数 ,以空格分隔。 表示宅邸在东西方向上的房间数量, 表示宅邸在南北方向上的房间数量, 表示拥有开关的房间数量。
- 接下来的 行中的第 行 () 包含整数 ,以空格分隔。表示房间 的中心有一个开关。 对组 互不相同。
输出
将移动所需的最短时间作为整数输出到标准输出的一行。如果无法到达房间 ,则输出整数 。
评分标准
对于评分数据的 %,满足条件 ,。
对于评分数据的 %,满足条件 。
对于评分数据的 %,满足这两个条件之一即可。同时满足这两个条件的评分数据不存在。
输入例子 1
3 2 1
1 2
输出例子 1
4
在这个例子中,你可以通过以下步骤在 4 分钟内从房间 的中心移动到房间 的中心,这是最短路径:
- 移动到房间 的中心。
- 按下房间 的中心的开关。
- 移动到房间 的中心。
- 移动到房间 的中心。
下图显示了此时宅邸的情况。图中,右方向为东,上方向为北,×号表示你的位置,○号表示开关。
输入例子 2
3 2 1
2 1
输出例子 2
-1
在这个例子中,你无法到达房间 。
输入例子 3
8 9 15
3 1
3 2
3 7
3 8
1 1
4 5
4 3
5 6
5 8
6 3
6 2
7 5
8 9
8 6
8 5
输出例子 3
25
在这个例子中,初始时宅邸的情况如下图所示。注意,房间 和房间 的中心也可能会有开关。