CF1348B Phoenix and Beauty
题目描述
Phoenix 喜欢美丽数组。如果一个数组的所有长度为 $k$ 的子数组的和都相同,则称该数组是美丽的。数组的子数组是指任意一段连续的元素序列。
现在 Phoenix 有一个长度为 $n$ 的数组 $a$。他希望通过在数组中插入若干个整数(可以为零),使其变成美丽数组。插入的整数必须在 $1$ 到 $n$ 之间。整数可以插入在任意位置(包括最前面或最后面),且他不要求插入的整数数量最少。
输入格式
输入包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 50$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 100$)。
每个测试用例的第二行包含 $n$ 个用空格分隔的整数($1 \le a_i \le n$),表示 Phoenix 当前拥有的数组 $a$。该数组可能已经是美丽的,也可能不是。
输出格式
对于每个测试用例,如果无法构造出美丽数组,输出 $-1$。否则,输出两行。
第一行输出美丽数组的长度 $m$($n \le m \le 10^4$)。你不需要使 $m$ 最小。
第二行输出 $m$ 个用空格分隔的整数($1 \le b_i \le n$),表示 Phoenix 通过插入若干整数后得到的美丽数组。你可以输出原数组 $a$ 中没有出现过的整数。
如果有多种方案,输出任意一种。保证如果可以将数组 $a$ 变为美丽数组,则一定存在长度不超过 $10^4$ 的方案。
说明/提示
在第一个测试用例中,我们可以在第 $3$ 个位置(两个 $2$ 之间)插入整数 $1$,使数组 $a$ 变为美丽数组。此时所有长度为 $k=2$ 的子数组的和均为 $3$。还有许多其他可能的方案,例如:
- $2, 1, 2, 1, 2, 1$
- $1, 2, 1, 2, 1, 2$
在第二个测试用例中,数组已经是美丽的:所有长度为 $k=3$ 的子数组的和均为 $5$。
在第三个测试用例中,可以证明无法通过插入数字使数组 $a$ 变为美丽数组。
在第四个测试用例中,所给的数组 $b$ 是美丽的,所有长度为 $k=4$ 的子数组的和均为 $10$。也存在其他方案。
由 ChatGPT 4.1 翻译