atcoder#ARC097B. [ABC097D] Equals

[ABC097D] Equals

配点 : 400400

問題文

11 から NN までの整数を並び替えた順列 p1p_1, p2p_2, .., pNp_N があります。 また、 11 以上 NN 以下の整数のペアが MM 個与えられます。 これらは (x1,y1)(x_1,y_1), (x2,y2)(x_2,y_2), .., (xM,yM)(x_M,y_M) で表されます。 シカの AtCoDeer くんは順列 pp に次の操作を好きなだけ行って、 pi=ip_i = i となる ii (11 \leq ii \leq NN) の数を最大にしようと考えています。

  • 11 \leq jj \leq MM なる jj を選び、 pxjp_{x_j}pyjp_{y_j} をスワップする

操作後の pi=ip_i = i となる ii の数として考えうる最大値を求めてください。

制約

  • 22 \leq NN \leq 10510^5
  • 11 \leq MM \leq 10510^5
  • pp11 から NN までの整数を並び替えた順列
  • 11 \leq xj,yjx_j,y_j \leq NN
  • xjx_j \neq yjy_j
  • ii \neq jj なら、 {xi,yi}\{x_i,y_i\} \neq {xj,yj}\{x_j,y_j\}
  • 入力は全て整数

入力

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

NN MM

p1p_1 p2p_2 .... pNp_N

x1x_1 y1y_1

x2x_2 y2y_2

::

xMx_M yMy_M

出力

操作後の pi=ip_i = i となる ii (11 \leq ii \leq NN) の数として考えうる最大値を出力せよ。

5 2
5 3 1 4 2
1 3
5 4
2

j=1j=1 を選んで操作すると、 pp1 3 5 4 2 となり、これがベストなので答えは 22 です。

3 2
3 2 1
1 2
2 3
3

例えば j=1j=1, j=2j=2, j=1j=1 の順に操作すると、 pp1 2 3 となり明らかにこれがベストです。 同じ jj を何回選んでもいいことに注意してください。

10 8
5 3 6 8 7 10 9 1 2 4
3 1
4 1
5 9
2 5
6 5
3 5
8 9
7 9
8
5 1
1 2 3 4 5
1 5
5

操作をする必要はありません。