310634: CF1863C. MEX Repetition

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

C. MEX Repetitiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given an array $a_1,a_2,\ldots, a_n$ of pairwise distinct integers from $0$ to $n$. Consider the following operation:

  • consecutively for each $i$ from $1$ to $n$ in this order, replace $a_i$ with $\operatorname{MEX}(a_1, a_2, \ldots, a_n)$.

Here $\operatorname{MEX}$ of a collection of integers $c_1, c_2, \ldots, c_m$ is defined as the smallest non-negative integer $x$ which does not occur in the collection $c$. For example, $\operatorname{MEX}(0, 2, 2, 1, 4) = 3$ and $\operatorname{MEX}(1, 2) = 0$.

Print the array after applying $k$ such operations.

Input

Each test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 10^5$). The description of the test cases follows.

The first line of each test case contains two integers $n$ and $k$ ($1\le n\le 10^5$, $1\le k\le 10^9$).

The second line contains $n$ pairwise distinct integers $a_1,a_2,\ldots, a_n$ ($0\le a_i\le n$) representing the elements of the array before applying the operations.

It is guaranteed that the sum of $n$ over all test cases does not exceed $10^5$.

Output

For each test case, print all $n$ elements of the array after applying $k$ operations.

ExampleInput
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
Output
1
2 0 1
2 1
2 3 4 5 0
7 5 3 0 4 2 1 6 9 10
Note

In the first test case, here is the entire process:

  1. On the first operation, the array changes from $[1]$ to $[0]$, since $\operatorname{MEX}(1) = 0$.
  2. On the second operation, the array changes from $[0]$ to $[1]$, since $\operatorname{MEX}(0) = 1$.

Thus, the array becomes $[1]$ after two operations.

In the second test case, the array changes as follows during one operation: $[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 1, 3] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 3] \rightarrow [2, 0, {\mkern3mu\underline{\mkern-3mu {\bf 3}\mkern-3mu}\mkern3mu}] \rightarrow [2, 0, 1]$.

In the third test case, the array changes as follows during one operation: $[{\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}, 2] \rightarrow [1, {\mkern3mu\underline{\mkern-3mu {\bf 2}\mkern-3mu}\mkern3mu}] \rightarrow [1, 0]$. And during the second operation: $[{\mkern3mu\underline{\mkern-3mu {\bf 1}\mkern-3mu}\mkern3mu}, 0] \rightarrow [2, {\mkern3mu\underline{\mkern-3mu {\bf 0}\mkern-3mu}\mkern3mu}] \rightarrow [2, 1]$.

Output

题目大意:
C. MEX 重复

给你一个由0到n的整数组成的数组a1, a2, …, an,且这些整数两两不同。考虑以下操作:

对每个i从1到n,依次执行以下操作:将ai替换为MEX(a1, a2, …, an)。

这里MEX是集合c1, c2, …, cm的最小非负整数x,且x不在集合c中。例如,MEX(0, 2, 2, 1, 4) = 3和MEX(1, 2) = 0。

输出执行k次操作后的数组。

输入输出数据格式:
输入:
第一行包含一个整数t(1≤t≤10^5),表示测试用例的数量。

每个测试用例包含以下内容:
- 第一行包含两个整数n和k(1≤n≤10^5,1≤k≤10^9)。
- 第二行包含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]变为[0],因为MEX(1) = 0。
- 第二次操作,数组从[0]变为[1],因为MEX(0) = 1。

因此,经过两次操作后,数组变为[1]。

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

在第三个测试用例中,数组在执行一次操作时,变化如下:
[0, 2] → [1, 2] → [1, 0]。在第二次操作时:
[1, 0] → [2, 0] → [2, 1]。题目大意: C. MEX 重复 给你一个由0到n的整数组成的数组a1, a2, …, an,且这些整数两两不同。考虑以下操作: 对每个i从1到n,依次执行以下操作:将ai替换为MEX(a1, a2, …, an)。 这里MEX是集合c1, c2, …, cm的最小非负整数x,且x不在集合c中。例如,MEX(0, 2, 2, 1, 4) = 3和MEX(1, 2) = 0。 输出执行k次操作后的数组。 输入输出数据格式: 输入: 第一行包含一个整数t(1≤t≤10^5),表示测试用例的数量。 每个测试用例包含以下内容: - 第一行包含两个整数n和k(1≤n≤10^5,1≤k≤10^9)。 - 第二行包含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]变为[0],因为MEX(1) = 0。 - 第二次操作,数组从[0]变为[1],因为MEX(0) = 1。 因此,经过两次操作后,数组变为[1]。 在第二个测试用例中,数组在执行一次操作时,变化如下: [0, 1, 3] → [2, 1, 3] → [2, 0, 3] → [2, 0, 1]。 在第三个测试用例中,数组在执行一次操作时,变化如下: [0, 2] → [1, 2] → [1, 0]。在第二次操作时: [1, 0] → [2, 0] → [2, 1]。

加入题单

上一题 下一题 算法标签: