#arc118b. [arc118_b]Village of M People

[arc118_b]Village of M People

题目描述

ARC共和国有NN名公民,他们都参与竞争性编程。每个公民根据他们的技能被分为121,2,\ldotsKK级别。

一次全国人口普查显示,共有AiA_i名公民的级别为ii。为了使数据更易于理解,国王决定把这个国家描述成一个由MM人组成的村庄。

设定在村庄中级别为ii的人数为BiB_i,使得$\\max_i\\left|\\frac{B_i}{M} - \\frac{A_i}{N}\\right|$尽可能小的同时满足以下条件:

  • 每个 BiB_i 是非负整数,且满足 sumi=1KBi=M\\sum_{i=1}^K B_i = M

按照要求打印出一个合适的序列 B=(B1,B2,ldots,BK)B = (B_1, B_2, \\ldots, B_K)

约束条件

  • 1leqKleq1051\\leq K\\leq 10^5
  • 1leqN,Mleq1091\\leq N, M\\leq 10^9
  • 每个 AiA_i 是非负整数,满足 sumi=1KAi=N\\sum_{i=1}^K A_i = N

输入

输入以以下格式从标准输入给出:

KK NN MM A1A_1 A2A_2 ldots\\ldots AKA_K

输出

在一行中按照要求打印出整数序列 BB,元素之间用空格隔开。

B1B_1 B2B_2 ldots\\ldots BKB_K

如果有多个满足要求的序列,则任意一个都可以接受。


示例输入1

3 7 20
1 2 4

示例输出1

3 6 11

在这个输出中,我们有 $\\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}$.


示例输入2

3 3 100
1 1 1

示例输出2

34 33 33

注意 B1=B2=B3=33B_1 = B_2 = B_3 = 33 不满足要求,因为总和必须为 M=100M = 100

在此示例中,除了 34 33 3333 34 33 或者 33 33 34 也是可以接受的。


示例输入3

6 10006 10
10000 3 2 1 0 0

示例输出3

10 0 0 0 0 0

示例输入4

7 78314 1000
53515 10620 7271 3817 1910 956 225

示例输出4

683 136 93 49 24 12 3