atcoder#AGC004D. [AGC004D] Teleporter

[AGC004D] Teleporter

配点 : 800800

問題文

高橋王国には NN 個の町があります。 町は 11 から NN まで番号が振られています。 町 11 は首都です。

それぞれの町にはテレポーターが 11 台ずつ設置されています。 町 ii (1iN1 \leq i \leq N) のテレポーターの転送先は町 aia_i (1aiN1 \leq a_i \leq N) です。 どの町から出発しても、テレポーターを何回か使うことで首都へ辿り着けることが保証されます。

高橋王は正の整数 KK が好きです。 わがままな高橋王は、いくつかのテレポーターの転送先を変え、次の条件が成り立つようにしたいと思っています。

  • どの町から出発しても、テレポーターをちょうど KK 回使うと、最終的に首都にいる。

条件が成り立つようにするためには、最少でいくつのテレポーターの転送先を変えればよいかを求めてください。

制約

  • 2N1052 \leq N \leq 10^5
  • 1aiN1 \leq a_i \leq N
  • どの町から出発しても、テレポーターを何回か使うことで首都へ辿り着ける。
  • 1K1091 \leq K \leq 10^9

入力

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

NN KK

a1a_1 a2a_2 ...... aNa_N

出力

条件が成り立つようにするためには、最少でいくつのテレポーターの転送先を変えればよいかを出力せよ。

3 1
2 3 1
2

テレポーターの転送先を a=(1,1,1)a = (1,1,1) と変えればよいです。

4 2
1 1 2 2
0

最初から条件が成り立っているので、テレポーターの転送先を変える必要はありません。

8 2
4 1 2 3 1 2 3 4
3

例えば、テレポーターの転送先を a=(1,1,2,1,1,2,2,4)a = (1,1,2,1,1,2,2,4) と変えればよいです。