a126. 倉庫番
Tags : 二維陣列 模擬
Accepted rate : 9人/9人 ( 100% ) [非即時]
評分方式:
Strictly

最近更新 : 2021-12-06 18:32

Content

在一個 $N \times M$ 的房間內有一個體力為 $E$ 的工人與 $K$ 個重量不一的箱子。

工人會依照下列的操作指令進行移動:

  • 若指令為 0,輸出目前房間內的狀況
  • 若指令為 1,則工人向右移動一格
  • 若指令為 2,則工人向下移動一格
  • 若指令為 3,則工人向左移動一格
  • 若指令為 4,則工人向上移動一格 

當移動到空格時不必消耗任何體力。當工人移動的方向遇到箱子時,他會嘗試推動該箱子以及後方相連的箱子。

  • 若勇者的體力足以推動那些箱子,他會將那些箱子沿著移動方向推一格,並消耗的體力值為那些箱子重量總和。
  • 若勇者的體力小於要推動的箱子重量總和時,他無法推動箱子,並會停在原地,不會消耗體力。
  • 當勇者試圖移動到牆外或是將箱子推出牆壁時,視為無效操作,並停在原地。

請你寫一支程式模擬操作,並在指令為 0 時輸出房間內狀況。

Input

第一行輸入房間的大小 $N$、$M$。
第二行輸入勇者所在的row值、column值,以及他的體力 $E$。
第三行輸入箱子的數量 $K$。
接下來K行輸入每個箱子的 row值、column值以及重量。

最後一行輸入一串的操作指令,直到EOF為止,保證所有指令皆為 $0 \sim 4$。

輸入測資範圍如下:

  • $0 < M, N \leq 500$
  • $0 \leq K < N \times M$
  • $0 < E < 10^6$
  • 所有箱子的重量不會超過 $1000$

子題組分數如下:

  • 第一子題組 10 分: $K=0$。
  • 第二子題組 20 分: $K=1$。
  • 第三子題組 70 分: 無其他限制。
Output

每當指令為 0 的時候輸出房間內的狀況,每次輸出 $N$ 行,每行 $M$ 格,中間以空格隔開,行尾沒有空格。

每格的內容如下:

  • 若該位置為勇者,則輸出勇者體力
  • 若該位置為箱子,則輸出箱子的重量。
  • 若該位置為空格,則輸出 $0$。
Sample Input #1
3 3
0 0 5
0
0 1 0 4 0 1 2 1 2 1 2 0
Sample Output #1
5 0 0
0 0 0
0 0 0
0 5 0
0 0 0
0 0 0
0 5 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 5
Sample Input #2
4 4
1 0 7
1
1 1 2
0 1 1 1 0 4 1 2 2 2 0
Sample Output #2
0 0 0 0
7 2 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 3 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 2
0 0 0 0
Sample Input #3
4 7
1 0 9
6
2 0 1
2 1 1
2 2 1
0 2 1
1 2 1
2 4 2
4 4 2 2 1 1 1 4 0
Sample Output #3
0 0 1 0 0 0 0
0 0 1 0 0 0 0
0 0 2 1 1 2 0
1 0 0 0 0 0 0
測資資訊:
記憶體限制: 256 MB
公開 測資點#0 (10%): 1.0s , <1M
公開 測資點#1 (10%): 1.0s , <1M
公開 測資點#2 (10%): 1.0s , <1M
公開 測資點#3 (10%): 1.0s , <1K
公開 測資點#4 (10%): 1.0s , <1M
公開 測資點#5 (10%): 1.0s , <1M
公開 測資點#6 (10%): 1.0s , <1M
公開 測資點#7 (10%): 1.0s , <1M
公開 測資點#8 (10%): 1.0s , <1M
公開 測資點#9 (10%): 1.0s , <1M
Hint :

範例三的圖示如下:

Tags:
二維陣列 模擬
出處:
judgegirl [管理者: ktlai (K.我已霸榜.Tlai) ]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」