すごろくメニューのサムネイル
すごろくシミュレーション 3 CoffeeScript(Beta)編(paizaランク A 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

前回までの問題では、プレイヤーが 1 人ですごろくをしたときのシミュレーションを行いました。
次は複数人ですごろくをした履歴を基にシミュレーションを行います。

K 人で T ターンのゲームを行いました。
各ターンではプレイヤー 1 → プレイヤー 2 → ... プレイヤー K の順で行動します。
各ターンで各プレイヤーが 1~6 の数字がでるサイコロを振って出た目の履歴が与えられます。
履歴に基づいて行動したときの各プレイヤーのマスの位置と所持金を出力してください。

ただし、ゴールマスを超えるような移動の場合もゴールマス (マス N) にたどり着いたとします。
ゴールマスにたどり着いたら、それ以降のターンでは移動せず Finished と出力してください。

入力例 1 では、以下のようにゲームが進行します。
・プレイヤー 1 がサイコロの目 3 を出す。マス 1 からマス 4 に移動し、所持金は 9 になる。
・プレイヤー 2 がサイコロの目 1 を出す。マス 1 からマス 3 に移動し、所持金は 59 になる。
・プレイヤー 1 がサイコロの目 2 を出す。マス 4 からマス 5 (ゴールマス) に移動する。
・プレイヤー 2 がサイコロの目 1 を出す。マス 3 からマス 4 に移動し、所持金は 68 になる。
・プレイヤー 3 は既にゴールしているため、Finished と出力する。
・プレイヤー 2 がサイコロの目 1 を出す。マス 4 からマス 5 (ゴールマス) に移動する。

入力される値

入力は以下のフォーマットで与えられます。

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


・1 行目には 3 つの整数 N, T, K が与えられます。
・続く K 行の i 行目には、i 人目のプレイヤーが j 回目に振ったサイコロの出た目 D_{i,j} が与えられます。
・続く N 行の i 行目には、すごろくの i マス目の種類 B_i と数字 C_i が与えられます。
・入力は 1 行となり、末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

期待する出力は T × K 行からなります。
各ターンの出力はプレイヤー 1 から順に、プレイヤーの番号とターン終了時のマス、所持金を空白区切りで出力します。
ただし、ターン開始時にゴールマスにいるプレイヤーは、プレイヤーの番号と Finished を出力してください。
これを 1, 2, ..., T ターンの順に出力してください。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・2 ≦ N ≦ 100
・1 ≦ T ≦ 100
・2 ≦ K ≦ 10
・1 ≦ D_{i,j} ≦ 6
・B_i = "P" (所持金イベントマス)、-100 ≦ C_i ≦ 100 (2 ≦ i ≦ N-1)
・B_1 = "S" (スタートマス), C_1 = 0
・B_N = "G" (ゴールマス), C_N = 0

入力例1

5 3 2
3 4 2
2 1 1
S 0
P -8
P 59
P 9
G 0

出力例1

1 4 9
2 3 59
1 5 9
2 4 68
1 Finished
2 5 68

入力例2

10 5 3
1 5 2 6 4
6 4 6 6 4
4 6 3 2 5
S 0
P -93
P 98
P -39
P -89
P -59
P 99
P -93
P -99
G 0

出力例2

1 2 -93
2 7 99
3 5 -89
1 7 6
2 10 99
3 10 -89
1 9 -93
2 Finished
3 Finished
1 10 -93
2 Finished
3 Finished
1 Finished
2 Finished
3 Finished

入力例3

20 5 4
1 1 3 6 3
3 6 4 5 5
4 1 3 4 4
6 3 1 4 6
S 0
P 32
P -94
P -93
P -64
P -60
P 1
P -83
P -31
P -36
P -75
P -1
P 95
P 9
P -100
P 35
P 17
P -50
P 1
G 0

出力例3

1 2 32
2 4 -93
3 5 -64
4 7 1
1 3 -62
2 10 -129
3 6 -124
4 10 -35
1 6 -122
2 14 -120
3 9 -155
4 11 -110
1 12 -123
2 19 -119
3 13 -60
4 15 -210
1 15 -223
2 20 -119
3 17 -43
4 20 -210

問題一覧へ戻る

  1. paizaトップ
  2. レベルアップ問題集
  3. すごろくメニュー(言語選択)
  4. 問題一覧 CoffeeScript(Beta)編
  5. すごろくシミュレーション 3 CoffeeScript(Beta)編
ページの先頭へ戻る