你感觉你是个JAVA高手吗,那么就来挑战一下吧,下面可是ACM一道很经典的题目,试一吧!
奶牛脱险
农夫JJ将一头牛养有一个先烈的牛棚里,这个牛棚的内部结构是一个至少有一个出口的迷宫。当一场大火烧起来的时候,这头奶牛正在牛棚里一个求知的地方快乐的嚼着可供它反刍的食物,它必须尽快脱险。
令奶牛高兴的是,它拥有K个炸弹,每一个炸弹可以用来摧毁迷宫中国的一一堵墙,这样奶牛可以尽快直到出口,不幸的是,这些炸弹不能用来炸出一个新的出口,在寻找出口时,奶牛不必使用完所有的K个炸弹。
因为已经绘制了迷宫的地图,奶牛可以选择去炸一些最佳的墙以使它到出口的距离最短。
你的任务是计算出奶牛到出口的最短距离。这个距离等于奶牛在进入出口之前到达过的房间的数目。所以,从一个与出口相邻的房间到出口的距离是1。
地图中的行和列都从1开始标记。行1列1是迷宫的左上角,保证按照上面的规则奶牛可以走出迷宫。
输入:
第一行:R,C 分别表示迷宫的行数和列数。
第二行:两个整数告诉你奶牛处世时所在位置,分别表示行号和列号
第三行:K,表示奶牛拥有的炸弹数。
第4至2*R+4 行,一个有ASCII码表示的地图,墙由“-”和“|”表示,墙壁的相交点用“+”表示,第一行由2*C+1个字符组成,可能有空格。
输出:
一行输出 一个整数表示奶牛在使用不超过K个炸弹的情况下,到达出口的最短距离。
样例:
INPUT
4 7
2 1
1
+-+-+-+-+-+-+-+
| | |
+ +-+-+-+-+-+ +
| |
+ +-+-+-+-+-+-+
| | | | | |
+ +-+ + +-+ + +
| | |
+-+-+-+-+-+-+-+
OUTPUT
9