201181: [AtCoder]ARC118 B - Village of M People

Memory Limit:1024 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $400$ points

Problem Statement

The Republic of ARC has $N$ citizens, all of whom play competitive programming. Each citizen is given a dan (grade) which is $1$, $2$, $\ldots$, or $K$, according to their skill.

A national census has revealed that there are exactly $A_i$ citizens with dan $i$. To make this data easier to understand, the king has decided to describe the country as if it were a village of $M$ people.

Set the number of people with dan $i$ in the village, $B_i$, so that $\max_i\left|\frac{B_i}{M} - \frac{A_i}{N}\right|$ is minimized, while satisfying the following:

  • each $B_i$ is a non-negative integer, satisfying $\sum_{i=1}^K B_i = M$.

Print one such way to set $B = (B_1, B_2, \ldots, B_K)$.

Constraints

  • $1\leq K\leq 10^5$
  • $1\leq N, M\leq 10^9$
  • Each $A_i$ is a non-negative integer satisfying $\sum_{i=1}^K A_i = N$.

Input

Input is given from Standard Input in the following format:

$K$ $N$ $M$
$A_1$ $A_2$ $\ldots$ $A_K$

Output

Print the elements in your integer sequence $B$ satisfying the requirement in one line, with spaces in between.

$B_1$ $B_2$ $\ldots$ $B_K$

If multiple sequences satisfy the requirement, any of them will be accepted.


Sample Input 1

3 7 20
1 2 4

Sample Output 1

3 6 11

In this output, we have $\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 Input 2

3 3 100
1 1 1

Sample Output 2

34 33 33

Note that $B_1 = B_2 = B_3 = 33$ does not satisfy the requirement, since the sum must be $M = 100$.

In this sample, other than 34 33 33, printing 33 34 33 or 33 33 34 will also be accepted.


Sample Input 3

6 10006 10
10000 3 2 1 0 0

Sample Output 3

10 0 0 0 0 0

Sample Input 4

7 78314 1000
53515 10620 7271 3817 1910 956 225

Sample Output 4

683 136 93 49 24 12 3

Input

题意翻译

原来有 $K$ 个数,他们的总和为 $N$ ,现在希望在这些数之间的比值变化不大的情况下调整至总和为 $M$ ,如果有多种答案,输出其中一种即可。

加入题单

算法标签: