回分類題庫
d020: 2007 程式達人 C - 氣球追逐遊戲
出處:

Difficulity : 1
Accepted : 26 Times | Submit :78 Times | Clicks : 1768
Accepted : 20 Users | Submit : 24 Users | Accepted rate : 83%
Time Limit :2001 ms | Memory Limit : 32001 KBytes
題目加入時間 : 2008-10-10 08:53

Content :

小明(Bob)逛完政大資訊週,隨手帶了個氣球回家。到家之後小明還繼續拍打氣球作樂。明爸看了之後,覺得這樣玩太單調,就帶了小明到附近的公園去玩。

公園裡有個正方形的遊戲區,它四周邊緣上各有幾個電動風扇,可以往遊戲區內部,以直線固定方向送風。明爸想的玩法是讓小明拿著氣球站到遊戲區中的某個方塊中,然後開啟四周的風扇,這些風扇會吹動氣球,所以小明就得追著氣球跑,這樣玩起來比較刺激。

玩了一會兒,明爸想要根據遊戲區的大小以及四週哪些點有裝風扇來預估氣球的移動路徑。但心算不易,於是明爸邀請你們來設計程式計算氣球的移動路徑。明爸開出來的需求如下:遊戲區是由 m 乘 m 個小方塊組成,遊戲區四周每邊各有若干個電風扇。當氣球停在遊戲區內某個小方塊時,我們定其座標為

(x, y), 1 ≦ x ≦ m, 1 ≦ y ≦ m , 1 ≦ x, y ≦ m,

視風扇的設立狀況,氣球有以下幾種可能的移動路徑:

  1. 如果在 x 列或 y 行只有一部風扇吹向氣球,則氣球沿風向移動一格。
  2. 如果在 x 列或 y 行有兩部風扇同時吹向氣球(相反方向),因風力抵銷,氣球不會移動。
  3. 如果在 x 列與 y 行各只有一部風扇吹向氣球,則氣球以 45 度角斜移一個方塊。
  4. 如果 x 列與 y 行都沒有風扇,則氣球不會移動。

 只要考慮氣球受風扇影響的移動,不必考慮氣球慣性式的移動。

Input :

輸入檔中至多有50 組測試案例。每組測試案例分成以下幾個部分:
  1. 第一列由 7 個數字構成: m, n, s, w, e, x 和 y 分別代表遊戲區的邊長,四邊每邊的風扇數目與氣球的初始座標位置,1 ≦ m ≦ 100, 0 ≦ n,s,w,e ≦ m, 1 ≦ x ≦ m, 1 ≦ y ≦ m, 遊戲區西南角的座標為 (1, 1)。
  2. 接下來四列代表每邊(n, s, w, e)的風扇的所在位置。每個風扇用一個數字表示,這個數字從1 開始算,對北(n)與南(s)邊,最左邊是 1 。對東(e)與西(w)邊,最南邊是 1 。如果某一邊都沒有風扇則此列為空白行(empty line)。
最後一列以 7 個 0 表示所有測試案例的結尾。.

Output :

對每組測試案例,列印出氣球最終的移動路徑或位置,有三種可能:
  1. 氣球會停止,列印最終停留的位置:x y,x 與 y 之間以空白隔開
  2. 氣球會飛出遊戲區,列印:Be careful
  3. 氣球會飛不停,列印:Busy Bob

Sample Input :

4 1 0 2 0 1 2
3
     (empty line)
2 4
     (empty line)
3 1 0 0 0 2 3
2
     (empty line)
     (empty line)
     (empty line)
2 1 1 1 1 1 1
2
1
1
2
0 0 0 0 0 0 0

Sample Output :

4 1
Be careful
Busy Bob

Hint :

解題率:9/21

Author :

(管理員:MrWrongAnswer)

  Solve it!   Status Forum (0)

C++
C
JAVA
20843. liouzhou_101 (4 ms , 286KB)
40383. staycalm (6 ms , 238KB)
28804. henryokc (10 ms , 410KB)
54693. johnny (12 ms , 278KB)
34542. no_more_bug (12 ms , 378KB)
6576. taop (2 ms , 246KB)
54274. ag100 (4 ms , 258KB)
18200. yuhanlyu (4 ms , 282KB)
54307. ag100 (6 ms , 266KB)
54303. ag100 (6 ms , 260KB)
沒有解題記錄

執行時間會受很多因素影響因此僅供參考,主機等級請看這裡