首页 > 试题广场 >

最大正整数

[编程题]最大正整数
  • 热度指数:527 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
数组中存储了一堆小于10的非负整数,整个数组从左到右代表一个正整数(如数组[0, 1, 3, 2]代表正整数132)。现给出一个正整数K,要求经过K次数组相邻位置元素交换(必须完成K次交换),使得这个数组代表的数字最大。
例如, 
int array[] = {0, 1, 3, 2}, K = 1,则经过1次交换后,数组所能代表的最大值为1032;
int array[] = {0, 1, 3, 2}, K = 2,则经过2次交换后,数组所能代表的最大值为3012。

输入描述:
首先,输入一个正整数T,表示接收T组测试用例;
此后,输入T组测试用例,其中每组测试用例包含如下内容:
输入1:一个正整数K,表示在当前测试用例中,可以对数组进行K次相邻元素间的位置交换;
输入2:一个正整数N,表示当前用例包含数组的长度;
输入3:N个数组元素,所有元素都是小于10的非负整数;


输出描述:
输出共N行,对应于N个用例的输出:
每行输出为一个数组,数组元素之间用一个空格隔开,要求每行输出前后均无多余空格。
示例1

输入

4
2
5
4 2 1 3 5
3
5
4 2 1 3 5
4
5
4 2 1 3 5
5
5
4 2 1 3 5

输出

4 3 2 1 5
4 5 2 1 3
5 4 2 1 3
5 4 2 3 1

备注:
60%的数据 
70%的数据 
80%的数据 
90%的数据 
100%的数据 
100%的数据 ,60%的数据 ,100%的数据