测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A678. 营救计划

编程题 普及/提高-
知识点

题目描述

在一个n∗m的迷宫里,有一个萌新被困住了,你作为一个久经码场的战士,决定去营救萌新。地图中还会有一些守卫,你必须打败守卫才能通过守卫所在的位置,打败守卫需要花费1分钟,移动一步需要花费一分钟,每次你只能往上下左右某个方向移动一步。问你最少需要花费多少时间才能救到萌新。

输入格式

第一行输入两个整数 n,m
接下来n行每行输入m个字符

'#'代表障碍物,无法直接通过

'.'代表空地,可以直接通过

'G'代表守卫,你需要打败他才能通过

'M'代表萌新所在的位置

'@'表示你所在的位置

输出格式

如果可以营救到萌新,就输出最少需要花费的分钟数

如果不可以,输出“You can't save Mengxin”

输入输出样例

输入 #1
7 8 
#.#####. 
#.M#..@. 
#..#G... 
..#..#.# 
#...##.. 
.#...... 
........
输出 #1
13

说明/提示

1<=n,m<=200,输入保证合法
上一题 去做题 下一题