#loj5237. 「UOI 2020 Stage 4 Day1」缩小数组

「UOI 2020 Stage 4 Day1」缩小数组

[AdditionalFile5237.zip](file://AdditionalFile5237.zip?type=additional_file)

#5237. 「UOI 2020 Stage 4 Day1」缩小数组

标签: 传统 | 时间限制: 5000 ms | 内存限制: 512 MiB |

题目描述

题目译自 Ukrainian Olympiads in Informatics 2020 Stage 4 Day1 T4. Зменшення масиву

给定一个包含 nn 个整数的数组 aa。在一次操作中,你可以选择一个位置 ii (1in)(1 \leq i \leq n),将 aia_i 减少 kk,同时将数组中所有其他元素 aja_j (1jn,ij)(1 \leq j \leq n, i \neq j) 增加 tt

找出使数组中所有元素都小于或等于零(即非正数)所需的最小操作次数,或者报告这是不可能的。

输入格式

第一行包含三个整数 n,k,tn, k, t (1n106,0k,t109)(1 \leq n \leq 10^{6}, 0 \leq k, t \leq 10^{9}),分别表示数组长度和操作参数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1018ai109)(-10^{18} \leq a_i \leq 10^{9}),表示数组元素的初始值。

输出格式

输出一个整数 cc,表示使数组所有元素小于或等于零所需的最小操作次数。如果无法实现,则输出 1-1

如果可以实现,则输出 nn 个整数 cnticnt_i (1in)(1 \leq i \leq n),表示对编号为 ii 的元素执行的操作次数。请注意,必须满足等式 i=1ncnti=c\sum\limits_{i=1}^n cnt_i = c

样例 1

输入

4 10 1
2 5 9 -4

输出

4
1 1 2 0

样例 2

输入

5 1 100
-1000 -1000 10 -1000 -1000

输出

10
0 0 10 0 0

样例 3

输入

2 1 1
1 0

输出

-1

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 33 t=0t = 0
22 55 $1 \leq n \leq 300, 0 \leq \vert a_i\vert \leq 300, 0 \leq t \leq 10^{6}$
33 88 $1 \leq n \leq 3000, 0 \leq \vert a_i\vert \leq 3000, 0 \leq t \leq 10^{6}$
44 99 $1 \leq n \leq 10^{3}, 1 \leq a_i \leq 10^{9}, 0 \leq t \leq 10^{6}$
55 55 1n104,1ai1091 \leq n \leq 10^{4}, 1 \leq a_i \leq 10^{9}
66 1313 1n105,1ai1091 \leq n \leq 10^{5}, 1 \leq a_i \leq 10^{9}
77 88 1ai1091 \leq a_i \leq 10^{9}
88 99 1n103,0t1061 \leq n \leq 10^{3}, 0 \leq t \leq 10^{6}
99 55 1n1041 \leq n \leq 10^{4}
1010 1414 1n1051 \leq n \leq 10^{5}
1111 2121 无附加限制