U187620 MTT彩色迷宫
题目背景
玩过undertale的都知道MTT的彩色迷宫吧!张三发现了很多网上流传的MTT迷宫,但是很多迷宫难住了他,于是他请你编写一个程序,求出该怎么走吧!
题目描述
题目会给出一个迷宫,求怎么走
迷宫里面有很多不同颜色的砖块:
红色砖块(r) 不能通行
橙色砖块(o)让你染上橘子味
黄色砖块(y)走上去时,你会往回弹一格
绿色砖块(g)走上去时,移动步数视为+2而不是+1,而走下去时正常记步
蓝色砖块(b)当你是橘子味时不能通过,当你是柠檬味,或者没有气味时可以通过;如果它周围四格有黄色砖,它也会变为黄色。
紫色砖块(p)让你直接移动到紫色块前方的砖块,而且移动步数仍然是1,并让你染上柠檬味
粉色砖块(k)可以走上去,不会触发任何东西
比如: kpk,从左边的k到右边的k只需一步(向右)
而k g k从左边的k到右边的k需要三步(向右,再向右)
如果一个紫色砖块挨着绿色(kpg)
那从左边的k到右边的g也只需一步(向右)不算g的多加的那一步
如果有连续的紫色砖(kppk)那这些砖块会让你连续滑行,从左边的k到右边的k只需一步(向右)
如果一个紫砖挨着一个黄砖(kpy)那么你从左边走上紫砖时,你会滑行到黄砖,然后,这个黄砖会把你弹回紫砖,再然后,紫砖会把你带回左边的k,这个过程仅需一步(向右)而且,虽然你回到了移动之前的地方,但这会让你染上柠檬味。而如果把左边的k换成o,这就没有任何作用,因为你染上柠檬味之后橙色砖会把你再染成橘子味
如果一个p接着一个r(kpr)你在k上依旧不能向右移动,因为你会滑上不能同行的红砖
如果一个p正好在边界上(kp 边界)你在k上也不能向右移动,因为这会让你滑下去
给出这样的一个地图,求解怎么走为最优路线
输入格式
第一行,两个数n,m表示地图的大小
接下来n行,每行m个字符,表示地图的样子,具体意义参见题目描述
接下来,一行,四个数,表示起点的坐标和终点的坐标
输出格式
如果能达到终点,输出最短路径的走法(右R,左L,上U,下D),如果几种路径一样长,输出由以下优先级的字典序小的那种走法(优先级从高到低:R L D U)
如果不能,输出impossible
说明/提示
m,n