#abc296e. [abc296_e]Transition Game

[abc296_e]Transition Game

問題文

長さ NN の数列 A=(A1,A2,ldots,AN)A=(A_1,A_2,\\ldots,A_N) が与えられます。ここで、各 AiA_i (1leqileqN)(1\\leq i\\leq N)1leqAileqN1\\leq A_i \\leq N をみたします。

高橋君と青木君が NN 回ゲームを行います。i=1,2,ldots,Ni=1,2,\\ldots,N 回目のゲームは次のようにして行われます。

  1. 青木君が正整数 KiK_i を指定する。

  2. 青木君の指定した KiK_i を聞いた後、高橋君は 11 以上 NN 以下の整数 SiS_i を選び、黒板に書く。

  3. その後、 KiK_i 回次の操作を繰り返す。

    • 黒板に xx が書かれているとき、それを消し、AxA_x を新しく書く。

KiK_i 回の操作の後で黒板に書かれている整数が ii ならば ii 回目のゲームは高橋君の勝ち、そうでないならば青木君の勝ちとなります。
ここで、Ki,SiK_i,S_ii=1,2,ldots,Ni=1,2,\\ldots,N に対して独立に選ぶ事ができます。

両者が、自身が勝つために最善の行動をとったとき、NN 回のゲームのうち高橋君が勝つ回数を求めてください。

制約

  • 1leqNleq2times1051\\leq N\\leq 2\\times 10^5
  • 1leqAileqN1\\leq A_i\\leq N
  • 入力はすべて整数

入力

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

NN A1A_1 A2A_2 ldots\\ldots ANA_N

出力

両者が最善の行動をとったとき、NN 回のゲームのうち高橋君が勝つ回数を出力せよ。


入力例 1

3
2 2 3

出力例 1

2

11 回目のゲームにおいて、青木君が K1=2K_1=2 を指定したとき、高橋君は S1S_1 として、1,2,31,2,3 のいずれを選んでも勝つことはできません。

例えば、高橋君が最初に黒板に S1=1S_1=1 と書いたとすると、22 回の操作で黒板に書かれている数は順に 1to2(=A1)1\\to 2(=A_1)2to2(=A2)2\\to 2(=A_2) と変化し、
最終的に黒板に書かれている数は 2(neq1)2(\\neq 1) であるため、青木君の勝ちとなります。

一方、2,32,3 回目のゲームにおいては、青木君の指定した KiK_i の値によらず、高橋君はそれぞれ 2,32,3 を最初に黒板に書くことで勝つ事ができます。

よって、両者が、自分が勝つために最善の行動をとったとき、高橋君が勝つゲームは 2,32,3 回目の 22 回であるため、22 を出力します。


入力例 2

2
2 1

出力例 2

2

11 回目のゲームにおいて、高橋君は、青木君が指定した K1K_1 が奇数のときは 22、偶数のときは 11 を最初に黒板に書く事で勝つ事ができます。

同様に 22 回目のゲームにおいても勝つ方法が存在するため、1,21,2 回目のゲームのいずれでも高橋君は勝利する事ができ、22 が答えとなります。