AT_arc118_b [ARC118B] Village of M People
Description
[problemUrl]: https://atcoder.jp/contests/arc118/tasks/arc118_b
ARC 国には $ N $ 人の国民がおり、全国民が競技プログラミングのプレイヤーです。各国民にはその競技プログラミングの実力によって、$ 1,\ 2,\ \ldots,\ K $ のいずれかひとつの段位が与えられています。
ARC 国では国勢調査が行われて、その結果、段位 $ i $ の国民はちょうど $ A_i $ 人居ることが分かりました。ARC 国の国王はこの統計データをより理解しやすい形にするために、なるべく各段位の人数の割合を保ったまま、ARC 国の状況を $ M $ 人の村に例えることにしました。
$ M $ 人の村における段位 $ i $ の村民の人数 $ B_i $ を上手く定めることで、$ \max_i\left|\frac{B_i}{M}\ -\ \frac{A_i}{N}\right| $ を最小にしてください。ただし、次が成り立つ必要があります。
- 各 $ B_i $ は非負整数で、$ \sum_{i=1}^K\ B_i\ =\ M $ を満たす
そのような $ B\ =\ (B_1,\ B_2,\ \ldots,\ B_K) $ の定め方を、ひとつ出力してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ K $ $ N $ $ M $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_K $
Output Format
条件を満たす整数列 $ B $ の各要素を、空白で区切って $ 1 $ 行で出力してください。
> $ B_1 $ $ B_2 $ $ \ldots $ $ B_K $
条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。
Explanation/Hint
### 制約
- $ 1\leq\ K\leq\ 10^5 $
- $ 1\leq\ N,\ M\leq\ 10^9 $
- 各 $ A_i $ は非負整数で、$ \sum_{i=1}^K\ A_i\ =\ N $ を満たす
### Sample Explanation 1
この出力において、$ \max_i\left|\frac{B_i}{M}\ -\ \frac{A_i}{N}\right|\ =\ \max\left(\left|\frac{3}{20}-\frac{1}{7}\right|,\ \left|\frac{6}{20}-\frac{2}{7}\right|,\ \left|\frac{11}{20}-\frac{4}{7}\right|\right)\ =\ \max\left(\frac{1}{140},\ \frac{1}{70},\ \frac{3}{140}\right)\ =\ \frac{3}{140} $ となっています。
### Sample Explanation 2
和を $ M\ =\ 100 $ にしなければならないので、$ B_1\ =\ B_2\ =\ B_3\ =\ 33 $ では 条件が満たされないことに注意してください。 なおこの例においては、`34 33 33` の他、`33 34 33` や `33 33 34` という出力も正解となります。