AT_cpsco2019_s3_g Grand Election
Description
[problemUrl]: https://atcoder.jp/contests/cpsco2019-s3/tasks/cpsco2019_s3_g
アイドルグループ ATC48 にて、$ N $ 人のアイドルたちに人気投票が行われ、各アイドルに $ a_1,\ a_2,\ \ldots,\ a_N $ の投票が集まりました。
各アイドルには得票数に応じた賞金を渡します。事前に $ X $ 円 ($ X $ は正の整数) の賞金が用意されていて、なるべくアイドル $ i $ には $ a_i $ に比例する賞金を渡したいです。しかし、$ A\ =\ a_1\ +\ a_2\ +\ \dots\ +\ a_N $ として $ X\ \times\ \frac{a_i}{A} $ が整数値になるとは限りません。そこで各アイドルに渡す賞金額 $ x_1,\ x_2,\ \ldots,\ x_N $ を以下の条件を満たす $ 0 $ 以上の整数値となるように決めることにしました:
- $ x_1\ +\ x_2\ +\ \ldots\ +\ x_N\ =\ X $
- $ |\frac{x_1}{a_1}\ -\ \frac{X}{A}|\ +\ |\frac{x_2}{a_2}\ -\ \frac{X}{A}|\ +\ \ldots\ +\ |\frac{x_N}{a_N}\ -\ \frac{X}{A}| $ が最小値をとる。
各アイドルの賞金額 $ x_1,\ x_2,\ \ldots,\ x_N $ を出力するプログラムを作ってください。複数通り考えられる場合には、$ (x_1,\ x_2,\ \ldots,\ x_N) $ の辞書順が最小のものを出力してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ X $ $ a_1 $ $ a_2 $ $ \ldots $ $ a_N $
Output Format
各アイドルの受け取る賞金額 $ x_1,\ x_2,\ \ldots,\ x_N $ をこの順に一行ずつ出力してください。
Explanation/Hint
### 制約
- $ 1\ \le\ N\ \le\ 10^5 $
- $ 1\ \le\ X\ \le\ 10^9 $
- $ 1\ \le\ a_i\ \le\ 100 $
- 与えられる入力はすべて整数です。
### Sample Explanation 1
この場合はちょうど比例配分することができます。
### Sample Explanation 2
このとき $ |\frac{43}{3}\ -\ \frac{100}{7}|\ +\ |\frac{57}{4}\ -\ \frac{100}{7}|\ =\ 0.083333… $ となります。
### Sample Explanation 3
複数通り考えられる場合は、辞書順最小のものを出力します。