a790: 12. Haunted House Inspector
內容
每當到了萬聖節,消防隊都會檢查迷宮鬼屋,確認有沒有著火和消防管夠不夠長、能不能撲滅所有的火。為了將這個程序自動化,你自告奮勇的寫一個程式來模擬。
輸入
輸入多組測資,每組第一行包含三個數字,分別代表地圖的長、寬以及消防管的長度。接著輸入迷宮地圖(一個字元代表一呎),”#”代表牆壁、”S”代表迷宮入口、”F”代表找火位置,請你從入口進入沿著迷宮滅火直到消防管不夠長,迷宮轉角一定是垂直的,而且消防管碰到才能滅火。
60 9 84
#############S##############################################
#FFFFFF FF #FFF # # #FF # FFFF#
############### # #### ####### # #### #### ######## ######F#
# F F FFFFF FFF# FF# # # #FFFF # F# #FFFFFF#
##########F#### # ############ # ####### # ### ######F######
# # FFFFFFF # # #FFFF # F# #FFFFFF#
##########F####F# ############ # ####### # ### ###########F#
# FFF FFFFF FFFFFFFF # FFFFFF#
############################################################
輸出
請輸出滅火後地圖,以”.”代表消防管能到達的位置,如果火勢全部被撲滅,請再隔一行輸出“All Fires Extinguished!”( 不含引號 )。
#############.##############################################
#.................#..............#.......#...#......# ....#
###############.#.####.#######.#.####.####.########.######.#
#...............#....#.......#.#.#.......#...#......#......#
##########.####.#.############.#.#######.#.###.######.######
#...............#............#.#.#.......#...#......#......#
##########.####.#.############.#.#######.#.###.###########.#
#..............................#...........................#
############################################################
All Fires Extinguished!
解題思路
題目的意思是將管線拉到最長後能滅掉的火全部滅掉,然後輸出滅完火後的地圖。
用 Dijkstra 演算法找出有限距離所能達到的全部位置,並將能達到位置的元素改為'.'全部找到後輸出滅完火的地圖,並判斷是否還有火('F')存在於地圖上,沒有的話再額外輸出"All Fires Extinguished!"表示火滅乾淨了即可。
完整程式碼
AC (2ms, 92KB)
|