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 翻译