SP13989 SUSY - Helping Susy

题目描述

Susy 是一个既聪明又美丽的学生,她尤其擅长解决谜题游戏,尤其是迷宫游戏。这项才能让她在各种比赛中赢得了不少奖项,她的速度和技巧一直备受认可。 这次,她参加了一个特别的谜题比赛,而她的嫉妒对手 Angelica 也参与了。 目前,她们的分数打成平手。为了解决这个平局,裁判们设计了一场特别的比赛作为决胜局。游戏的规则是这样的: - 游戏由一个类似迷宫的表格构成,里面有墙壁。同时还有一些特殊道具——魔法石。想要赢得游戏,玩家必须收集齐表格中的所有魔法石。 - 玩家有四种可选的移动方向:上、下、左、右。一旦玩家选择了一个方向,就必须沿着这个方向移动,直到撞到墙壁才会停下来。显然,玩家不能超出表格的边界,因此表格边界也视作墙壁。 - 因为可能有多种解决方案,裁判们希望找出其中最优的一个,即使用最少移动次数的方案。 对于 Susy 来说,这并不是难题,但 Angelica 对此却感到无比头疼。出于嫉妒,Angelica 偷偷把 Susy 的解法撕成了许多碎片(她不是很聪明,其实可以直接复制,却因嫉妒而失去了理智)。 时间紧迫,Susy 再也没有时间重新解出谜题。不过幸运的是,参赛者允许请朋友帮忙解决一个谜题,而她知道你拥有评委们不知道的强大编程技能。 于是,她去求助你!编写一个程序以最少的移动次数解决这个迷宫,帮助 Susy 吧!

输入格式

输入第一行是两个整数 $R$ 和 $C$,分别表示表格的行数和列数。 接下来的 $R$ 行每行有 $C$ 个字符,代表迷宫。迷宫中仅包含以下字符: - `.` - 空地, - `#` - 墙壁, - `S` - 玩家起始位置, - `*` - 魔法石。

输出格式

输出一共两行。第一行只有一个数字 $S$,表示游戏的最优解所需的最少移动次数。 第二行由 $S$ 个字符串构成,用 `-` 分隔。这些字符串包括 "Up"、"Down"、"Left" 和 "Right"。这个字符串序列表示最优解中所有的具体移动。 如果有多个最优解,则输出字典序最小的一个方案。 **本翻译由 AI 自动生成**