Responsive image

问题 H: 小粉兔的车站遐想

问题 H: 小粉兔的车站遐想

时间限制: 2 Sec  内存限制: 256 MB
提交: 0  解决: 5
[提交][状态][讨论版][命题人:]

题目描述

时间过得很快,去年还是大一的小粉兔已经大二了。
他依然保留着早睡早起的习惯,在中午十二点半就早早地起床,准备去早餐店吃早餐,非常地注重身体健康!


这天,他突发奇想,准备搭乘公交车去吃早餐,于是他立刻动身前往了周边的公交车站。
作为清华大学的一名优秀学生,小粉兔非常善于观察。
他注意到公交站的站牌上一共标有0~n号(共n+1辆)公交车,而每天只有n辆公交车出行。
细心的他又连着观察了好几天,终于他发现,每天所出行的公交车的编号和顺序会随着一天天过去而变化。

如果第一天出行的公交车编号和顺序为:a1,a2,a3,...,an(ai表示第i个出行的公交车的编号),
那么在第二天,对于i (1<=i<=n),前一天第i个出行的公交车的编号ai就会变为MEX{a1,a2,a3,...,an},即ai=MEX{a1,a2,a3,...,an}。
每次a
i更新后用到ai+1的更新中。
这里的MEX{}表示为{}里所有未出现的数的最小值,例如:MEX{0,2,2,1,4}=3, MEX{1,2}=0。

按照这个规律,请你推出k天后应当出行的公交车的编号和顺序(即a1,a2,a3,...,an,相邻两个数用空格隔开)

输入描述

每个测试包含多个测试用例。第一行包含测试用例的数量t(1≤t≤10^5). 下面是测试用例的描述。

每个测试用例的第一行包含两个整数n,k(1≤n≤10^5,1≤k≤10^9)。n表示每天出行的公交车个数,k表示你需要输出经过k天后公交车出行的情况。

第二行包含n对不同整数a1,a2,…,an(0≤ai≤n),即第一天起公交车出行的情况。
可以保证所有测试样例的n的总和不超过10^5。

输出描述

对于每个测试用例,在应用k次操作后打印数组的所有n个元素。
每个测试样例的答案应当用换行隔开,具体见样例输出格式。

样例输入

5
1 2
1
3 1
0 1 3
2 2
0 2
5 5
1 2 3 4 5
10 100
5 3 0 4 2 1 6 9 10 8

样例输出

1
2 0 1
2 1
2 3 4 5 0
7 5 3 0 4 2 1 6 9 10

提示

1.第一个测试用例中,整个过程为:

在第一次操作中,数组从[1]更改到[0],因为MEX{1}=0。

在第二次操作中,数组从[0]更改到[1],因为MEX{0}=1。

因此,进行两次操作后,数组变为[1]

2.在第二个测试用例中,数组在一次操作中发生如下变化:[0,1,3]→[2,1,3]→[2,0,3]→[2,0,1]。

3.在第三个测试用例中,数组在第一次次操作中更改如下:[0,2]→[1,2]→[1,0]。

在第二次操作期间:[1,0]→[2,0]→[2,1]。

[提交][状态]
ACM算法攻关部