UVA589 Pushing Boxes

题目描述

### 题面翻译 想象你站在一个二维的迷宫里,迷宫由 $R$ 列 $C$ 行共 $R\times C$ 个方格组成,有些方格里是岩石(所以你与箱子不能走到这些格子上),而另外的则是空格子。你可以在一个空格子上向北(上)、南(下)、东(右)、西(左)移动到另外一个相邻的空格子上,这个操作叫做**步行**。 有一个空格子上放着一个箱子,你可以站在盒子旁边,向盒子的方向移动,使得你和箱子共同平移一格(当然平移到的地方不能有岩石)。我们把这样的操作叫做**推**。你只能用推的方式来移动箱子,这意味着,如果你把箱子推到了死角里,你就无法将它推出来了。 现在给定你的起始坐标、箱子的起始坐标和箱子要被推到的坐标,请你找出一个最优的推箱子的操作序列,或报告无解。具体地说: 1. 这个操作序列的**推**操作的次数是最少的。 2. 在满足 (1) 的条件下,若存在不止一个操作序列,则要求操作序列的**总操作次数**(包括**步行**操作和**推**操作)最少。 3. 若在满足 (1) (2) 的条件下,操作序列仍然不唯一,任意输出一个均可。

输入格式

输出格式

说明/提示

$R,C \leq 20$。