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

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

問題

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

次は実際にサイコロを振り複数人のすごろくをシミュレーションを行います。

K 人で T ターンのゲームを行います。
各ターンではプレイヤー 1 → プレイヤー 2 → ... プレイヤー K の順で行動します。
サイコロは 1 ~ 6 の数字が等確率で出ます。
いまからサイコロを振って、T ターンにわたる K 人のすごろくをシミュレーションし、すごろくの出た目と各ターン後の各プレイヤーのマスの位置と所持金を出力してください。

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

入力される値

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

N T K
B_1 C_1
B_2 C_2
...
B_N C_N


・1 行目には 3 つの整数 N, T, K が与えられます。
・続く N 行の i 行目には、すごろくの i マス目の種類 B_i と数字 C_i が与えられます。
・入力は N+1 行となり、末尾に改行が 1 つ入ります。


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

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

条件

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

・2 ≦ N ≦ 100
・1 ≦ T ≦ 100
・2 ≦ K ≦ 10
・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
S 0
P 93
P 67
P 53
G 0

出力例1

1 6 5 0
2 1 2 93
1 Finished
2 1 3 160
1 Finished
2 6 5 160

入力例2

10 5 3
S 0
P 26
P -94
P 24
P 88
P 61
P 6
P -63
P -80
G 0

出力例2

1 6 7 6
2 1 2 26
3 1 2 26
1 6 10 6
2 3 5 114
3 2 4 50
1 Finished
2 2 7 120
3 2 6 111
1 Finished
2 6 10 120
3 1 7 117
1 Finished
2 Finished
3 6 10 117

入力例3

20 5 4
S 0
P -13
P 99
P -20
P 54
P -16
P 46
P 29
P 7
P 4
P -60
P 72
P 36
P 13
P -28
P 86
P 94
P 32
P -4
G 0

出力例3

1 6 7 46
2 1 2 -13
3 1 2 -13
4 6 7 46
1 3 10 50
2 2 4 -33
3 2 4 -33
4 2 9 53
1 6 16 136
2 1 5 21
3 6 10 -29
4 6 15 25
1 5 20 136
2 1 6 5
3 5 15 -57
4 4 19 21
1 Finished
2 1 7 51
3 1 16 29
4 1 20 21

問題一覧へ戻る

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