問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
ここからはすごろくのシミュレーションを行います。
N マスのすごろくの盤面で T ターンのゲームを行います。
すごろくの盤面はマス 1 がスタートマス、マス N がゴールマス、それ以外のマスは所持金イベントマスです。
各ターンではすごろくの出た目の数だけ進み、到着したマスのイベントが発生します。
ゲーム開始時は 1 マス目のスタートマスにおり、所持金は 0 です。
各ターンで 1~6 の数字がでるサイコロを振って出た目の履歴が与えられます。
履歴に基づいて行動したときのマスの位置と所持金を出力してください。
ただし、ゴールマスを超えるようなサイコロの目がでた場合もゴールマス (マス N) にたどり着いたとします。
ゴールマスにたどり着いたら、それ以降のターンでは移動せず Finished と出力してください。
入力例 1 では以下のように行動します。
・1 回目のサイコロの目は 3 です。スタートであるマス 1 からマス 4 に移動します。所持金は 2 増加し 2 になります。
・2 回目のサイコロの目は 2 です。マス 4 からマス 6 に移動します。所持金は 3 減少し -1 になります。
・3 回目のサイコロの目は 4 です。マス 6 からゴールであるマス 10 に移動します。ゴールマスでは所持金の変化はなく、所持金は -1 のままです。
入力例 2 では、マス 1 → マス 7 → マス 13 → マス 15 (ゴールマスを超える) と途中でゴールマスにたどり着きます。
ゴールマスにたどり着いた後のターンでは Finished と出力します。
所持金が負の数になることや、入力例 3 のようにゴールマスに到達するとは限らないことに注意してください。
入力は以下のフォーマットで与えられます。
N T
D_1 D_2 ... D_T
B_1 C_1
B_2 C_2
...
B_N C_N
期待する出力は T 行からなります。
i 行目には、i ターン目終了時のマスと所持金をこの順に空白区切りで出力してください。
ただし、i ターン目開始時にゴールマスにいる場合は Finished と出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・2 ≦ N ≦ 100
・1 ≦ T ≦ 100
・B_i = "P" (所持金イベントマス)、-100 ≦ C_i ≦ 100 (2 ≦ i ≦ N-1)
・B_1 = "S" (スタートマス), C_1 = 0
・B_N = "G" (ゴールマス), C_N = 0
・1 ≦ D_i ≦ 6
10 3
3 2 4
S 0
P 1
P -3
P 2
P 4
P -3
P 2
P -9
P 8
G 0
4 2
6 -1
10 -1
15 7
6 6 6 6 5 4 3
S 0
P 3
P 2
P -2
P -10
P 2
P 3
P -1
P -1
P -34
P 100
P 14
P -32
P 4
G 0
7 3
13 -29
15 -29
Finished
Finished
Finished
Finished
12 2
1 6
S 0
P -7
P -2
P -98
P 22
P 88
P -4
P -69
P 42
P -79
P 84
G 0
2 -7
8 -76