atcoder#ABC293B. [ABC293B] Call the ID Number

[ABC293B] Call the ID Number

题目描述

1 1 、人 2 2 \ldots 、人 N N 番号をつけられた N N 人の人がいます。

N N 人は、人 1 1 、人 2 2 \ldots 、人 N N の順番に下記の行動をちょうど 1 1 回ずつ行います。

  • i i 自身がまだ一度も番号を呼ばれていないなら、人 Ai A_i の番号を呼ぶ。

最後まで番号を一度も呼ばれない人全員の番号を昇順に列挙してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \ldots AN A_N

输出格式

下記の形式にしたがって、最後まで番号を一度も呼ばれない人全員の番号を昇順に列挙せよ。

K K X1 X_1 X2 X_2 \ldots XK X_K

すなわち、まず 1 1 行目に、最後まで番号を一度も呼ばれない人の人数 K K を出力し、 2 2 行目に、最後まで番号を一度も呼ばれない人全員の番号を昇順に並べた列 (X1, X2, , XK) (X_1,\ X_2,\ \ldots,\ X_K) を空白区切りで出力せよ。

题目大意

给定一个长度为 NN 的序列 aa

依次对 i=1,2,,Ni=1,2,\cdots ,N 执行以下操作:

如果当前纸上还未写下 ii,就在纸上写下 aia_i,否则什么也不做。

问:1,2,,N1,2,\cdots,N 中,有多少个数未被写下,分别是几。

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 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Ai  N 1\ \leq\ A_i\ \leq\ N
  • Ai  i A_i\ \neq\ i
  • 入力はすべて整数

Sample Explanation 1

5 5 人の行動は下記の通りです。 - 人 1 1 はまだ番号を一度も呼ばれていないので、人 1 1 は人 3 3 の番号を呼びます。 - 人 2 2 はまだ番号を一度も呼ばれていないので、人 2 2 は人 1 1 の番号を呼びます。 - 人 3 3 はすでに人 1 1 によって番号を呼ばれているので、何もしません。 - 人 4 4 はまだ番号を一度も呼ばれていないので、人 4 4 は人 5 5 の番号を呼びます。 - 人 5 5 はすでに人 4 4 によって番号を呼ばれているので、何もしません。 よって、最後まで番号を一度も呼ばれないのは人 2 2 と人 4 4 です。