CF1516A.Tit for Tat

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Tit for Tat

题目描述

给定一个长度为 nn 的数组 aa,你最多可以对其进行 kk 次如下操作:

  • 选择数组中的两个不同元素,将第一个元素加 11,并将第二个元素减 11。但操作后数组的所有元素都必须保持非负。

你能得到的字典序最小的数组是什么?

如果存在某个下标 ii 使得 xi<yix_i < y_i,且对于所有 1j<i1 \le j < i 都有 xj=yjx_j = y_j,则数组 xx 被认为比数组 yy 字典序更小。简单来说,在第一个不同的位置,xx 的元素比 yy 的元素小,则 xx 字典序更小。

输入格式

第一行包含一个整数 tt1t201 \le t \le 20),表示需要解决的测试用例数量。

每个测试用例的第一行包含两个整数 nnkk2n1002 \le n \le 1001k100001 \le k \le 10000),分别表示数组的长度和最多可以进行的操作次数。

每个测试用例的第二行包含 nn 个用空格分隔的整数 a1,a2,,ana_1, a_2, \ldots, a_n0ai1000 \le a_i \le 100),表示数组 aa 的元素。

输出格式

对于每个测试用例,输出经过最多 kk 次操作后能得到的字典序最小的数组。

说明/提示

在第二个测试用例中,我们首先将第一个元素减 11,并将第二个元素加 11。然后无法得到更小字典序的数组,因为不能让任何元素变为负数。

由 ChatGPT 4.1 翻译

样例

2
3 1
3 1 4
2 10
1 0
2 1 5 
0 1 

在线编程 IDE

建议全屏模式获得最佳体验