問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
(はじめに)
大富豪では前回の順位に応じてカードの入れ替えを行います。
プレイヤーが 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
答えを 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) 枚のカードが手札から消え、互いに消えたカードが相手の手札に入っている場合のみ正解となります。数字が同じものはどちらを交換しても正解となります。
すべてのテストケースにおいて、以下の条件をみたします。
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
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
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
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