QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100

#510. 汽车兽医

Statistics

Bob Roberts 自称是“汽车兽医”,他拥有几个废旧汽车回收场,人们可以来这里为他们(出了故障的)汽车寻找备用零件。每个回收场里的汽车都停放在一个 $m \times n$ 的围栏网格中,每辆车占据两个网格单元。每个回收场还有零个或多个专门用于堆放零件(挡泥板、8轨磁带播放器、轮毂盖、毛绒骰子等)的网格位置;这些位置实际上是不可通行的。生意太好了,以至于 Bob 的每个回收场只剩下一个空网格空间。

有时,Bob 或他的回收场管理员会把零件掉在地上,它会滚到某辆车下面。取回它的唯一方法是将车移开。根据空网格空间的位置,可能需要移动几辆车才能实现这一点。汽车只能向前或向后移动,且汽车的移动还受到围栏的限制(防止任何汽车移出回收场)以及包含零件堆的不可通行网格位置的限制。

图 A.1 展示了一个例子。一个双螺旋六角螺母滚到了网格第 3 行第 3 列的 3 号车下(深灰色阴影)。第 1 行第 3 列的空间是空的,第 3 行第 4 列的空间是不可通行的。取回零件的唯一方法是先移动 8 号车,然后是 4 号车,最后是 3 号车。注意,如果空网格单元和不可通行网格单元的位置互换,则无法取回该零件。

图 A.1:示例回收场。必须按顺序移动 8、4 和 3 号车,以露出第 3 行第 3 列的网格位置。这对应于样例输入 1。

这里的问题显而易见:对于给定的位置,Bob 想知道如何移动汽车来露出该位置,或者是否有可能露出它。

输入格式

输入的第一行包含两个正整数 $m$ 和 $n$ ($m, n \leq 250$),表示废旧汽车回收场的行数和列数。接下来是 $m$ 行,每行包含 $n$ 个整数;第 $i$ 行的第 $j$ 个值表示第 $i$ 行第 $j$ 列网格单元的内容。所有值 $v$ 都在范围 $-2 \leq v \leq 62\,500$ 内。每个非负值表示一辆废旧汽车的一半位于该位置。每个非负值恰好出现两次,且这两个出现位置在水平或垂直方向上相邻。值为 $-1$ 表示空网格位置,值为 $-2$ 表示不可通行位置。始终恰好有一个空位置和至少一辆车,但可能有零个或多个不可通行位置。在这些 $m$ 行之后,是包含两个整数 $r$ 和 $c$ ($1 \leq r, c \leq 250$) 的单行,表示想要露出的位置的行号和列号。这始终对应于一辆废旧汽车的位置。

输出格式

在一行中,用空格分隔,输出必须移动以使给定位置变为空的汽车编号。它们应按必须移动的顺序出现。如果存在多个可能的移动序列,则显示最短长度的序列。如果仍然存在平局,则显示根据序列中汽车编号按字典序排列最靠前的序列。如果无法露出所需位置,则显示 impossible

样例

样例输入 1

4 4
8 8 -1 9
4 10 10 9
4 3 3 -2
16 16 2 2
3 3

样例输出 1

8 4 3

样例输入 2

4 4
8 8 -2 9
4 10 10 9
4 3 3 -1
16 16 2 2
3 3

样例输出 2

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.