AT_ahc053_a [AHC053A] Random Sum Game
Description
$ N $ 枚の何も書かれていないカードと、 $ L $ 以上 $ U $ 以下の整数値を一様ランダムかつ独立に $ M $ 個生成する乱数生成器がある。
これらを使って以下のゲームを行う。
1. 最初に $ 1 $ 以上 $ U $ 以下の整数 $ A_1, \dots, A_N $ を自由に選び、 $ i $ 番目のカードには $ A_i $ を書き込む
2. 次に乱数生成器により $ M $ 個の整数 $ B_1, \dots, B_M $ が生成される
3. $ 0 $ 枚以上の好きな枚数のカードを捨て、捨てなかったカードを $ M $ 個の山に分ける(空の山があってもよい)
このゲームの目標は、 $ j $ 番目の山のカードに書かれた数の合計を $ B_j $ に近くすることである。
### Input & Output Format
最初に $ N, M, L, U $ が標準入力から与えられる。
> $ N $ $ M $ $ L $ $ U $
$ i $ 番目のカードに書き込む数を $ A_i $ として、以下のように標準出力に出力せよ。
> $ A_1 $ $ A_2 $ $ \dots $ $ A_N $
その後、 $ B_1, \dots, B_M $ が標準入力から与えられる。( $ A_1, \dots, A_N $ を出力するまでは与えられないことに注意せよ)
> $ B_1 $ $ B_2 $ $ \dots $ $ B_M $
$ i $ 番目のカードを捨てるなら $ X_i = 0 $ 、そうでないなら $ i $ 番目のカードが属する山を $ X_i $ として、以下のように標準出力に出力せよ。
> $ X_1 $ $ X_2 $ $ \dots $ $ X_N $
**どの出力の後にも改行をし、更に標準出力を flush しなければならない。**そうしない場合、TLEとなる可能性がある。
[例を見る](https://img.atcoder.jp/ahc053/Q405bDmv.html?lang=ja&seed=0&output=sample)
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 得点
$ j $ 番目の山に含まれるカードに書かれた数の総和を $ S_j $ とし、誤差 $ E $ を $ E = \sum_{j = 1}^M |S_j - B_j| $ で定義する。 このとき得点は $ \mathrm{round}((20 - \log_{10}(1 + E)) \times 5 \times 10^7) $ である。
合計で 150 個のテストケースがあり、各テストケースの得点の合計が提出の得点となる。 一つ以上のテストケースで不正な出力や制限時間超過をした場合、提出全体の判定がWAやTLEとなる。 コンテスト時間中に得た最高得点で最終順位が決定され、コンテスト終了後のシステムテストは行われない。 同じ得点を複数の参加者が得た場合、提出時刻に関わらず同じ順位となる。
### 入力生成方法
- $ N = 500, M = 50, L = 10^{15} - 2 \times 10^{12}, U = 10^{15} + 2 \times 10^{12} $
- $ L $ 以上 $ U $ 以下の整数を独立かつ一様ランダムに $ M $ 個生成し、それらを昇順に並べたものを $ B_1, \dots, B_M $ とする
### ツール(入力ジェネレータ・ビジュアライザ)
- [Web版](https://img.atcoder.jp/ahc053/Q405bDmv.html?lang=ja): ローカル版より高性能でアニメーション表示が可能です。
- [ローカル版](https://img.atcoder.jp/ahc053/Q405bDmv.zip): 使用するには[Rust言語](https://www.rust-lang.org/ja)のコンパイル環境をご用意下さい。
- [Windows用のコンパイル済みバイナリ](https://img.atcoder.jp/ahc053/Q405bDmv_windows.zip): Rust言語の環境構築が面倒な方は代わりにこちらをご利用下さい。
コンテスト期間中に、ビジュアライズ結果の共有や、解法・考察に関する言及は禁止されています。ご注意下さい。