题目描述
你是一位c++大佬,而你被可恶的作者一位神秘人抓进了一个古堡。善(xie)良(e)的神秘人给你了一张古堡地图,上面写着各种奇怪的字样,聪明的你看到了左上角的注释,上面写着:
*:空地,经过此格需要1分钟;
#:墙壁,不可经过;@:你的位置;
$:同你被一起抓住的c++大佬,解救TA需要5分钟;
G:烦人的小怪,会让你在这一格停留1分钟;
B:巨烦的大怪,会让你在这一格停留2分钟;
&:一堵可以推开的墙,你推开这堵墙需要10分钟。
你还知道,古堡的出口在地图的右下角。你想知道再解救完所有c++大佬的前提下,至少要几分钟才能逃出古堡。
(注:你可以往上、右上、右、右下、下、左下、左、左上8个方向行走)
输入格式
第一行两个整数 n 和 m ,表示古堡的大小。
接下来 m 行:
一行 n 个字符,表示古堡的地图,意思见题目描述。
输出格式
输出最少要多少分钟,才能将所有c++大佬救出,并且逃出古堡(若逃不出去或者无法解救所有的c++大佬则输出-1)。
样例
Input 1
5 5
@$***
$###*
##***
$***$
*****
Output 1
31
Input 2
5 5
@****
*###*
*#$#*
*###*
*****
Output 2
-1
数据范围
1≤n,m≤50
保证输出结果在 INT_MAX 以下
保证没有重复路线
提示
不要骗分!测试点可能都有解!!!