問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
次は複数人ですごろくをした履歴を基にシミュレーションを行います。
K 人で T ターンのゲームを行いました。
各ターンではプレイヤー 1 → プレイヤー 2 → ... プレイヤー K の順で行動します。
各ターンで各プレイヤーが 1~6 の数字がでるサイコロを振って出た目の履歴が与えられます。
履歴に基づいて行動したときの各プレイヤーのマスの位置と所持金を出力してください。
ただし、ゴールマスを超えるような移動の場合もゴールマス (マス N) にたどり着いたとします。
ゴールマスにたどり着いたら、それ以降のターンでは移動せず Finished と出力してください。
また、移動イベントマスによる移動後のマスではイベントは発生しないものとします。
さらに、移動マスで移動する際にスタートマス (マス 1) より前に戻ることはないことが保証されます。
入力は以下のフォーマットで与えられます。
N T K
D_{1,1} D_{1,2} ... D_{1,T}
D_{2,1} D_{2,2} ... D_{2,T}
...
D_{K,1} D_{K,2} ... D_{K,T}
B_1 C_1
B_2 C_2
...
B_N C_N
期待する出力は T × K 行からなります。
各ターンの出力はプレイヤー 1 から順に、プレイヤーの番号とターン終了時のマス、所持金を空白区切りで出力します。
ただし、ターン開始時にゴールマスにいるプレイヤーは、プレイヤーの番号と Finished を出力してください。
これを 1, 2, ..., T ターンの順に出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・2 ≦ N ≦ 100
・1 ≦ T ≦ 100
・2 ≦ K ≦ 10
・1 ≦ D_{i,j} ≦ 6
・B_1 = "S" (スタートマス), C_1 = 0
・B_N = "G" (ゴールマス), C_N = 0
・B_i = "P" (所持金イベントマス) または "M" (移動イベントマス) (2 ≦ i ≦ N-1)
・B_i = "P" のとき、-100 ≦ C_i ≦ 100
・B_i = "M" のとき、-10 ≦ C_i ≦ 10 かつ i + C_i ≧ 1 かつ C_i ≠ 0
10 3 2
2 3 2
1 4 3
S 0
P 81
M 2
P -58
M 8
P 50
P 89
P -20
M -1
G 0
1 5 0
2 2 81
1 8 -20
2 6 131
1 10 -20
2 8 131
10 5 3
2 3 2 1 4
2 2 2 4 2
4 3 3 6 5
S 0
P 81
P -20
P -58
M 8
P 50
P 89
P -20
M -1
G 0
1 3 -20
2 3 -20
3 10 0
1 6 30
2 10 -20
3 Finished
1 8 10
2 Finished
3 Finished
1 8 10
2 Finished
3 Finished
1 10 10
2 Finished
3 Finished
20 5 4
2 2 2 1 2
2 4 1 4 6
3 2 5 2 5
4 1 4 5 5
S 0
M 8
P 70
P 72
P 16
M 1
P -51
M 10
P 74
M -9
P -56
P -92
M -4
P 36
M 5
P 0
M -8
M 9
P -69
G 0
1 3 70
2 3 70
3 4 72
4 5 16
1 5 86
2 7 19
3 7 72
4 7 16
1 7 35
2 18 19
3 12 -20
4 11 -40
1 18 35
2 20 19
3 14 16
4 16 -40
1 20 35
2 Finished
3 19 -53
4 20 -40