大富豪メニューのサムネイル
(問題 9)カードの交換 COBOL(Beta)編(paizaランク C 相当)

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

問題

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

(はじめに)

大富豪では前回の順位に応じてカードの入れ替えを行います。

プレイヤーが N 人いるとします。また配られた手札の枚数の最小値を M とします。このとき、i = 1, 2, ..., N / 2 (小数点以下切り捨て) において、i 番目の人と、N + 1 - i 番目の人同士でカード交換を行います。このとき、i 番目の人は弱いほうから min(M / 2, N / 2 + 1 - i) 枚のカードを N + 1 - i 番目の人に渡し、逆に N + 1 - i 番目の人は強いほうから min(M / 2, N / 2 + 1 - i) 枚のカードを i 番目の人に渡します。

実際にやってみましょう。

(問題)

カードが配られた直後の N 人の手札が与えられます。プレイヤー i (1 ≦ i ≦ N) の手札は A_i 枚で、T_i_1, T_i_2, ..., T_i_{A_i} です。前回のゲームでプレイヤー i は P_i 番でした。カード交換を行った後の手札を出力してください。

入力される値


N
A_1
T_1_1 T_1_2 ... T_1_{A_1}
A_2
T_2_1 T_2_2 ... T_2_{A_2}
...
A_N
T_N_1 T_N_2 ... T_N_{A_N}
P_1 P_2 ... P_N


1 行目には 1 つの整数 N が与えられます。

2 × i (1 ≦ i ≦ N) 行目には 1 つの整数 A_i が与えられます。

2 × i + 1 (1 ≦ i ≦ N) 行目には A_i 個の文字列 T_i_1, T_i_2, ..., T_i_{A_i} が与えられます。

2 × N + 2 行目には N 個の整数 P_1, P_2, ..., P_N が与えられます。

入力は 2 × N + 2 行となり、末尾に改行が 1 つ入ります。


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

答えを 2 × N 行で出力してください。

2 × i - 1 (1 ≦ i ≦ N) 行目にはプレイヤー i の手札の枚数を出力してください。2 × i (1 ≦ i ≦ N) 行目にはプレイヤー i の手札を空白区切りで出力してください。

それぞれのペアにおいて適切な交換がされている、つまり、i 番目のプレイヤーは弱いほうから min(M / 2, N / 2 + 1 - i) 枚のカードが手札から消え、N + 1 - i 番目のプレイヤーは強いほうから min(M / 2, N / 2 + 1 - i) 枚のカードが手札から消え、互いに消えたカードが相手の手札に入っている場合のみ正解となります。数字が同じものはどちらを交換しても正解となります。

条件

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

  • 2 ≦ N ≦ 10


  • A_1 + A_2 + ... + A_N = 54


  • A_1 ≧ A_2 ≧ ... ≧ A_N


  • A_1 - A_N ≦ 1


  • T_i_j (1 ≦ i ≦ N, 1 ≦ j ≦ A_i) はトランプのカードで同じカードは現れない


  • (P_1, P_2, ..., P_N) は (1, 2, ..., N) の順列
  • 入力例1

    4
    14
    C8 S6 H2 HA C4 H6 C7 D5 SJ S2 S5 D10 S7 S9
    14
    D7 S4 HK DQ H5 D3 S8 D4 HQ S3 C3 C5 DA H7
    13
    D2 D9 SA BJOKER D8 CJ H8 C9 DK HJ SK H3 S10
    13
    C2 CQ C6 H9 SQ CA D6 C10 H10 H4 CK DJ RJOKER
    1 2 3 4

    出力例1

    14
    C8 S6 H2 HA H6 C7 D5 SJ S2 D10 S7 S9 RJOKER C2
    14
    D7 S4 HK DQ H5 D3 S8 D4 HQ S3 C5 DA H7 BJOKER
    13
    D2 D9 SA C3 D8 CJ H8 C9 DK HJ SK H3 S10
    13
    CQ C6 H9 SQ CA D6 C10 H10 H4 CK DJ C4 S5

    入力例2

    2
    27
    C4 HJ S8 D8 CJ S5 S3 H10 C8 H5 H7 D7 H9 S4 D10 SA CK RJOKER D2 C3 BJOKER H4 CQ C10 DQ H6 HK
    27
    D9 HA H2 DK D5 D4 S10 S7 S9 DA SJ SK H3 H8 CA D3 C9 HQ S2 C6 D6 SQ C5 DJ S6 C2 C7
    2 1

    出力例2

    27
    C4 HJ S8 D8 CJ S5 S3 H10 C8 H5 H7 D7 H9 S4 D10 SA CK H3 D2 C3 BJOKER H4 CQ C10 DQ H6 HK
    27
    D9 HA H2 DK D5 D4 S10 S7 S9 DA SJ SK RJOKER H8 CA D3 C9 HQ S2 C6 D6 SQ C5 DJ S6 C2 C7

    問題一覧へ戻る

    1. paizaラーニングトップ
    2. レベルアップ問題集
    3. 大富豪メニュー(言語選択)
    4. 問題一覧 COBOL(Beta)編
    5. (問題 9)カードの交換 COBOL(Beta)編
    ページの先頭へ戻る