AT_iroha2019_day4_a あるよるのできごと
Description
[problemUrl]: https://atcoder.jp/contests/iroha2019-day4/tasks/iroha2019_day4_a
このゲームは $ 4 $ 人プレイにのみ対応しており、各ラウンドで $ 1 $ 位~ $ 3 $ 位になると順位に応じた得点が得られる。各ラウンドの対戦結果が引き分けになることは無い。スコア表示画面では各々の得点が加算された履歴を見ることができる。
例えば、あるプレイヤーについて「1 2 2」と表示されている場合、そのプレイヤーはどこかのラウンドで $ 1 $ 位を取り、それ以降のどこかのラウンドで $ 2 $ 位を取り、それ以降のどこかのラウンドで $ 2 $ 位を取り、それ以降のラウンドでは得点を獲得していないことがわかる。
僕といろはちゃんは $ N $ ラウンドの対戦を行った。$ 4 $ 人それぞれについて、$ N $ ラウンドのスコアデータが入力されるので、そのゲーム結果があり得るかを出力せよ。また、あり得るならば各ラウンドの対戦結果の例を出力せよ。
Input Format
入力は $ 5 $ 行からなる。
$ 1 $ 行目にはラウンド数 $ N $ 、プレイヤー $ 1 $ がスコアを獲得した回数 $ A $ 、プレイヤー $ 2 $ がスコアを獲得した回数 $ B $ 、プレイヤー $ 3 $ がスコアを獲得した回数 $ C $ 、プレイヤー $ 4 $ がスコアを獲得した回数 $ D $ が入力される。
$ 2 $ 行目に入力される $ A $ 個の整数はプレイヤー $ 1 $ がスコアを獲得したラウンドにおける順位を表す。
$ 3\ \sim\ 5 $ 行目にはそれぞれプレイヤー $ 2\ \sim\ 4 $ のスコアに関する情報が $ 2 $ 行目と同様に入力される。
以下を参考にせよ。
> $ N $ $ A $ $ B $ $ C $ $ D $ $ a_1 $ $ a_2 $ $ \cdots $ $ a_A $ $ b_1 $ $ b_2 $ $ \cdots $ $ b_B $ $ c_1 $ $ c_2 $ $ \cdots $ $ c_C $ $ d_1 $ $ d_2 $ $ \cdots $ $ d_D $
Output Format
入力を満たす各ラウンドの対戦結果が存在しない場合には、`No`と出力せよ。
存在する場合には`Yes`と出力し、続く $ N $ 行に各ラウンドの対戦結果について、$ 4 $ 位を取ったプレイヤーの番号を出力せよ。入力を満たす出力が複数存在する場合には、いずれを出力しても構わない。
Explanation/Hint
### ストーリー
始まりは、ある夜のことだった。そのころ、僕といろはちゃんはカラフルなブロックを積むゲームにハマっていた。そのゲームは何の変哲もないものだったが、数多くのバグが存在していた。例えば、消えるはずのブロックが消えなかったり、風が吹いてブロックが飛んだり、変な浮島が現れたり。
その夜、僕といろはちゃんはこのゲームでオンライン対戦をしていたが、その対戦結果が変だった。「スコアを計算する部分にもバグがあるんじゃないですか?」いろはちゃんの一言を、僕は本当か確かめることにした。
### 制約
- 入力はすべて整数
- $ 0\ \leq\ A,B,C,D\ \leq\ 100 $
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 1\ \leq\ a_i\ \leq\ 3 $ $ (1\ \leq\ i\ \leq\ A) $
- $ 1\ \leq\ b_i\ \leq\ 3 $ $ (1\ \leq\ i\ \leq\ B) $
- $ 1\ \leq\ c_i\ \leq\ 3 $ $ (1\ \leq\ i\ \leq\ C) $
- $ 1\ \leq\ d_i\ \leq\ 3 $ $ (1\ \leq\ i\ \leq\ D) $
### 解説
[解説](https://img.atcoder.jp/iroha2019-day4/editorial-A.pdf)