atcoder#ABC228B. [ABC228B] Takahashi's Secret

[ABC228B] Takahashi's Secret

配点 : 200200

問題文

高橋君には NN 人の友達がいます。NN 人の友達はそれぞれ、友達 11 、友達 22\ldots 、友達 NN というあだ名で呼ばれています。

ある日、高橋君はある恥ずかしい秘密を、友達の一人である友達 XX に知られてしまいました。 i=1,2,,Ni = 1, 2, \ldots, N について、友達 ii が高橋君の秘密を知ったとき、友達 AiA_i がまだ高橋君の秘密を知らなければ、友達 ii は高橋君の秘密を友達 AiA_i にも教えてしまいます。

高橋君の秘密は最終的に何人の友達に知られることになるでしょうか?

制約

  • 2N1052 \leq N \leq 10^5
  • 1XN1 \leq X \leq N
  • 1AiN1 \leq A_i \leq N
  • AiiA_i \neq i
  • 入力はすべて整数

入力

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

NN XX

A1A_1 A2A_2 \cdots ANA_N

出力

答えを出力せよ。

4 2
3 1 1 2
3

高橋君の秘密は以下の流れで友達 11 、友達 22 、友達 3333 人に知れ渡ります。

  • ある日、高橋君は秘密を友達 22 に知られてしまいました。
  • 秘密を知った友達 22 は、その秘密を友達 11 に教えます。
  • 秘密を知った友達 11 は、その秘密を友達 33 に教えます。

高橋君の秘密は最終的に 33 人の友達に知られることになるため、33 を出力します。

20 12
7 11 10 1 7 20 14 2 17 3 2 5 19 20 8 14 18 2 10 10
7