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言語の環境構築が面倒な方は代わりにこちらをご利用下さい。 コンテスト期間中に、ビジュアライズ結果の共有や、解法・考察に関する言及は禁止されています。ご注意下さい。