問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
次は実際にサイコロを振り複数人のすごろくをシミュレーションを行います。
K 人で T ターンのゲームを行います。
各ターンではプレイヤー 1 → プレイヤー 2 → ... プレイヤー K の順で行動します。
サイコロは 1 ~ 6 の数字が等確率で出ます。
いまからサイコロを振って、T ターンにわたる K 人のすごろくをシミュレーションし、すごろくの出た目と各ターン後の各プレイヤーのマスの位置と所持金を出力してください。
ただし、ゴールマスを超えるような移動の場合もゴールマス (マス N) にたどり着いたとします。
ゴールマスにたどり着いたら、それ以降のターンでは移動せず Finished と出力してください。
また、移動イベントマスによる移動後のマスではイベントは発生しないものとします。
さらに、移動マスで移動する際にスタートマス (マス 1) より前に戻ることはないことが保証されます。
入力は以下のフォーマットで与えられます。
N T K
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
・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
S 0
P 81
M 2
P -58
M 8
P 50
P 89
P -20
M -1
G 0
1 6 7 89
2 1 2 81
1 1 8 69
2 6 8 61
1 3 10 69
2 2 10 61
10 5 3
S 0
P -59
M 6
M 8
P 79
M 9
P 8
M 6
P 97
G 0
1 6 7 8
2 1 2 -59
3 1 2 -59
1 6 10 8
2 3 5 20
3 2 10 -59
1 Finished
2 2 7 28
3 Finished
1 Finished
2 2 9 125
3 Finished
1 Finished
2 6 10 125
3 Finished
20 5 4
S 0
P -72
M 10
P -56
M 7
M -3
P -37
P 92
M -3
P -48
P 39
M -8
M -7
P -29
P 88
M 6
M -10
M 6
M 1
G 0
1 6 7 -37
2 1 2 -72
3 1 2 -72
4 6 7 -37
1 3 10 -85
2 2 4 -128
3 2 4 -128
4 2 6 -37
1 6 20 -85
2 1 12 -128
3 6 10 -176
4 6 4 -37
1 Finished
2 5 7 -128
3 1 11 -137
4 5 6 -37
1 Finished
2 4 11 -89
3 1 4 -137
4 1 7 -74