主题:救援行动
【问题描叙】
想必大家都认识传说中的AFY,现在AFY被传说中神秘的邪恶的Moligpy人抓住了!他急需你的救援。他被关在一个迷宫中。迷宫的长、宽不超过200。
迷宫中有不可以越过的墙以及监狱的看守。
AFY的朋友们组织了一些救援队来到了迷宫中。他们的任务是:接近AFY。我们假设接近AFY就是到达AFY所在的位置。
假设移动(只能向上、下、左、右4个方向移动)需要1单位时间,杀死一个看守也需要1单位时间。到达一个格子以后,如果该格子有看守,则一定要杀死(否则会死的很难看的……只见那个看守开了9倍狙镜……)。交给你的任务是,计算最少要多少单位时间,才能到达AFY所在的地方?
【输入格式】
输入文件rescue.in第一行二个整数n,m。表示迷宫的大小为n*m。
以后n行,每行m个时字符。其中“#”代表墙,“.”表示空地,“x”表示看守,“a”表示AFY,“r”表示救援队伍。
字母均为小写。
【输出格式】
输出文件rescue.out只有一行,代表救出AFY的最短时间。
如果救援小组永远不能达到AFY处,则输出“Poor AFY has to stay in the prison all his life.”
【输入样例】
7 8
#.#####.
#.a#..r.
#..#x...
..#..#.#
#...##..
.#......
........
【输出样例】
13
数据规模
对于30%的数据,n*m<=100;
对于全部的数据,n*m<=200*200。
想必大家都认识传说中的AFY,现在AFY被传说中神秘的邪恶的Moligpy人抓住了!他急需你的救援。他被关在一个迷宫中。迷宫的长、宽不超过200。
迷宫中有不可以越过的墙以及监狱的看守。
AFY的朋友们组织了一些救援队来到了迷宫中。他们的任务是:接近AFY。我们假设接近AFY就是到达AFY所在的位置。
假设移动(只能向上、下、左、右4个方向移动)需要1单位时间,杀死一个看守也需要1单位时间。到达一个格子以后,如果该格子有看守,则一定要杀死(否则会死的很难看的……只见那个看守开了9倍狙镜……)。交给你的任务是,计算最少要多少单位时间,才能到达AFY所在的地方?
【输入格式】
输入文件rescue.in第一行二个整数n,m。表示迷宫的大小为n*m。
以后n行,每行m个时字符。其中“#”代表墙,“.”表示空地,“x”表示看守,“a”表示AFY,“r”表示救援队伍。
字母均为小写。
【输出格式】
输出文件rescue.out只有一行,代表救出AFY的最短时间。
如果救援小组永远不能达到AFY处,则输出“Poor AFY has to stay in the prison all his life.”
【输入样例】
7 8
#.#####.
#.a#..r.
#..#x...
..#..#.#
#...##..
.#......
........
【输出样例】
13
数据规模
对于30%的数据,n*m<=100;
对于全部的数据,n*m<=200*200。