题目描述
题目译自 Ukrainian Olympiads in Informatics 2020 Stage 4 Day1 T4. Зменшення масиву
给定一个包含 n 个整数的数组 a。在一次操作中,你可以选择一个位置 i (1≤i≤n),将 ai 减少 k,同时将数组中所有其他元素 aj (1≤j≤n,i=j) 增加 t。
找出使数组中所有元素都小于或等于零(即非正数)所需的最小操作次数,或者报告这是不可能的。
输入格式
第一行包含三个整数 n,k,t (1≤n≤106,0≤k,t≤109),分别表示数组长度和操作参数。
第二行包含 n 个整数 a1,a2,…,an (−1018≤ai≤109),表示数组元素的初始值。
输出格式
输出一个整数 c,表示使数组所有元素小于或等于零所需的最小操作次数。如果无法实现,则输出 −1。
如果可以实现,则输出 n 个整数 cnti (1≤i≤n),表示对编号为 i 的元素执行的操作次数。请注意,必须满足等式 i=1∑ncnti=c。
4 10 1
2 5 9 -4
4
1 1 2 0
5 1 100
-1000 -1000 10 -1000 -1000
10
0 0 10 0 0
2 1 1
1 0
-1
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 |
分值 |
附加限制 |
| 1 |
3 |
t=0 |
| 2 |
5 |
$1 \leq n \leq 300, 0 \leq \vert a_i\vert \leq 300, 0 \leq t \leq 10^{6}$ |
| 3 |
8 |
$1 \leq n \leq 3000, 0 \leq \vert a_i\vert \leq 3000, 0 \leq t \leq 10^{6}$ |
| 4 |
9 |
$1 \leq n \leq 10^{3}, 1 \leq a_i \leq 10^{9}, 0 \leq t \leq 10^{6}$ |
| 5 |
5 |
1≤n≤104,1≤ai≤109 |
| 6 |
13 |
1≤n≤105,1≤ai≤109 |
| 7 |
8 |
1≤ai≤109 |
| 8 |
9 |
1≤n≤103,0≤t≤106 |
| 9 |
5 |
1≤n≤104 |
| 10 |
14 |
1≤n≤105 |
| 11 |
21 |
无附加限制 |