#4675. Call the ID Number

0

Call the ID Number

Call the ID Number

题目描述

有 NN 个人,他们的编号是 1,2,…,N1, 2, \ldots, N。 每位编号为 11、编号为 22、…\ldots、编号为 NN 的人按该顺序各执行以下动作一次:

如果编号为 ii 的人的编号尚未被叫过,则叫出编号为 AiA_i 的人的编号。

按升序列举在整个过程中直到最后都没有被叫出的所有人的编号 按严格升序排列。

输入格式

输入从标准输入按以下格式给出: NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

按升序以以下格式列举在整个过程中直到最后都没有被叫出的人的编号: KK X1X_1 X2X_2 …\ldots XKX_K

换句话说,第一行应包含直到最后都没有被叫出的人的数量 KK; 第二行应包含这些人的编号序列 (X1,X2,…,XK)(X_1, X_2, \ldots, X_K),按升序排列,编号之间用空格分隔。

5
3 1 4 5 4
2
2 4
20
9 7 19 7 10 4 13 9 4 8 10 15 16 3 18 19 12 13 2 12
10
1 2 5 6 8 11 14 17 18 20

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 1≤Ai≤N1 \leq A_i \leq N Ai≠iA_i \neq i 输入中的所有数值均为整数。这五位的动作如下。

编号为 11 的人尚未被叫过,因此编号为 11 的人叫出了编号为 33 的人。 编号为 22 的人尚未被叫过,因此编号为 22 的人叫出了编号为 11 的人。 编号为 33 的人已被编号为 11 的人叫过,所以没有发生任何事。 编号为 44 的人尚未被叫过,因此编号为 44 的人叫出了编号为 55 的人。 编号为 55 的人已被编号为 44 的人叫过,所以没有发生任何事。

因此,编号为 22 和 44 的人在直到最后都没有被叫出。

标签: AtCoder|abc293B

来源

AtCoder|abc293B