CF1876C Autosynthesis

题目描述

Chaneka 写下了一个包含 $n$ 个正整数元素的数组 $a$。最初,所有元素都没有被圈出。在一次操作中,Chaneka 可以圈出一个元素。可以多次圈出同一个元素。 在完成所有操作后,Chaneka 会构造一个序列 $r$,该序列由所有未被圈出的 $a$ 的元素按索引顺序组成。 Chaneka 还会构造另一个序列 $p$,其长度等于操作次数,第 $i$ 个元素 $p_i$ 表示第 $i$ 次操作中被圈出的元素的索引。 Chaneka 想要通过若干次操作,使得序列 $r$ 等于序列 $p$。请你帮助她实现这一目标,或者报告如果无法实现!注意,如果有多种方案,你可以输出任意一种。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 2\cdot10^5$),表示数组 $a$ 的大小。 第二行包含 $n$ 个整数 $a_1,a_2,a_3,\ldots,a_n$($1\leq a_i\leq n$)。

输出格式

如果无法实现,输出一行 $-1$。 否则,输出两行。第一行包含一个整数 $z$,表示操作次数。第二行包含 $z$ 个整数,第 $i$ 个整数表示第 $i$ 次操作中被圈出的元素的索引。如果有多种方案,你可以输出任意一种。

说明/提示

在第一个样例中,按照输出中的操作进行: - 元素 $a_2$ 被圈出 $1$ 次。 - 元素 $a_3$ 被圈出 $2$ 次。 - 未被圈出的元素(按索引顺序)为 $a_1$、$a_4$ 和 $a_5$,所以 $r=[3,2,3]$。 - $p=[3,2,3]$。 因此,$r=p$。 在第二个样例中,不可能实现。 由 ChatGPT 4.1 翻译