AT_abc293_b [ABC293B] Call the ID Number
题目描述
有 $N$ 个人,编号为 $1$、$2$、$\ldots$、$N$。
这 $N$ 个人会按照人 $1$、人 $2$、$\ldots$、人 $N$ 的顺序,各自恰好进行一次如下操作:
- 如果第 $i$ 个人还没有被别人叫过编号,那么他会叫出人 $A_i$ 的编号。
请将最后一次都没有被别人叫过编号的所有人的编号**按升序**输出。
输入格式
输入以如下格式从标准输入给出。
> $N$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
请按如下格式输出最后一次都没有被别人叫过编号的所有人的编号。
> $K$
> $X_1$ $X_2$ $\ldots$ $X_K$
即,第一行输出最后一次都没有被别人叫过编号的人的人数 $K$,第二行输出这些人的编号,按升序排列,编号之间用空格隔开。
说明/提示
### 限制条件
- $2 \leq N \leq 2 \times 10^5$
- $1 \leq A_i \leq N$
- $A_i \neq i$
- 输入均为整数
### 样例解释 1
$5$ 个人的操作如下:
- 人 $1$ 还没有被叫过编号,所以人 $1$ 叫了人 $3$ 的编号。
- 人 $2$ 还没有被叫过编号,所以人 $2$ 叫了人 $1$ 的编号。
- 人 $3$ 已经被人 $1$ 叫过编号,所以什么都不做。
- 人 $4$ 还没有被叫过编号,所以人 $4$ 叫了人 $5$ 的编号。
- 人 $5$ 已经被人 $4$ 叫过编号,所以什么都不做。
因此,最后一次都没有被别人叫过编号的是人 $2$ 和人 $4$。
由 ChatGPT 4.1 翻译