CF1862B Sequence Game

题目描述

Tema 和 Vika 正在玩如下的游戏。 首先,Vika 想出一个长度为 $m$ 的正整数序列 $a$,并将其写在纸上。然后她拿出一张新纸,根据以下规则写下序列 $b$: - 首先写下 $a_1$。 - 然后,对于 $2 \le i \le m$,仅当 $a_{i-1} \le a_i$ 时才写下 $a_i$。记该序列的长度为 $n$。 例如,从序列 $a=[4, 3, 2, 6, 3, 3]$,Vika 会得到序列 $b=[4, 6, 3]$。 接着,她把写有序列 $b$ 的纸交给 Tema。Tema 试图猜出 Vika 最初选择的序列 $a$。 Tema 认为在这种游戏中获胜的概率极低,但他仍然想找出至少一个可能被 Vika 选中的序列 $a$。请帮助他,输出任意一个符合条件的序列。 注意,你输出的序列长度不能超过输入序列长度的两倍。

输入格式

输入包含多组测试用例。第一行为一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行为一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示序列 $b$ 的长度。 每个测试用例的第二行为 $n$ 个整数 $b_1, b_2, b_3, \dots, b_n$($1 \le b_i \le 10^9$),表示序列 $b$ 的元素。 所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出两行。第一行输出一个整数 $m$,表示你构造的序列 $a$ 的长度($n \le m \le 2n$)。第二行输出 $m$ 个整数 $a_1, a_2, a_3, \dots, a_m$($1 \le a_i \le 10^9$),表示你假设的 Vika 最初写下的序列。 如果有多种符合条件的序列,输出任意一种即可。

说明/提示

第一个样例在题目描述中已经给出解释。 在第二个样例中,Vika 可能直接选择了原始序列。 由 ChatGPT 4.1 翻译