题号:NC294578
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}⭐我喜欢模糊的照片中止不住的心跳
\hspace{15pt}Bingbong 有一个长度为 n 的数组 \{a_1,a_2,\cdots,a_n\}
\hspace{15pt}她每次操作可以选定两个不同的索引 i,j \left(i\neq j\right),然后可以选择以下的操作之一:
\hspace{23pt}\bullet\,a_i=a_i+a_j,删除 a_j
\hspace{23pt}\bullet\,a_j=a_i+a_j,删除 a_i
\hspace{15pt}现在你需要在至多 k 次内最大化数组 a字典序,并输出操作后的数组 a

\hspace{15pt}对于数组 s 和数组 t,从第一个元素开始逐个比较,直到找到第一个不同的元素,较大元素所在的数组的字典序较大。如果比较到其中一个数组的结尾时依旧全部相同,则较短的数组字典序更小。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^4\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}第一行输入两个整数 n,k\left(1\leqq n\leqq 2\times 10^5;0\leqq k<n\right),表示数组长度和最多能进行的操作次数。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(1\leqq a_i\leqq 10^9\right),表示数组。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2\times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。输出若干个整数,表示操作后字典序最大的数组 a
示例1

输入

复制
2
4 1
2 2 1 3
2 1
1313 1

输出

复制
5 2 1
1314