atcoder#ARC126B. [ARC126B] Cross-free Matching

[ARC126B] Cross-free Matching

配点 : 400400

問題文

座標平面上に、xx 座標が 1,2,,N1, 2, \ldots, Nyy 座標が 00 または 11 であるような合計 2N2N 個の頂点 (1,0),,(N,0),(1,1),,(N,1)(1, 0),\ldots, (N,0), (1,1), \ldots, (N,1) があります。 これらのうちの 22 頂点を結ぶ線分が MM 個あり、ii 番目の線分は (ai,0)(a_i, 0)(bi,1)(b_i, 1) を結んでいます。

これら MM 個の線分から KK 個の線分を選び、選んだ線分のうちどの 22 個の線分も同一の点を含まないようにすることを考えます。ただし、線分の両端点も線分に含まれる点として扱います。可能な KK の最大値を求めてください。

制約

  • 1N,M2×1051\leq N, M \leq 2\times 10^5
  • 1ai,biN1\leq a_i, b_i\leq N
  • iji\neq j ならば、aiaja_i\neq a_j または bibjb_i\neq b_j

入力

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

NN MM

a1a_1 b1b_1

\vdots

aMa_M bMb_M

出力

可能な KK の最大値を出力してください。

3 3
1 2
2 3
3 1
2

1,21, 2 番目の線分を選ぶことが、最適解のひとつです。

例えば 11 番目の線分と 33 番目の線分は同一の点 (53,23)\left(\frac53, \frac23\right) を含むため、同時に選ぶことはできません。

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

1,3,51, 3, 5 番目の線分を選ぶことが、最適解のひとつです。

例えば 11 番目の線分と 22 番目の線分は同一の点 (1,1)(1, 1) を含むため、同時に選ぶことはできません。

7 5
1 7
7 1
3 4
2 6
5 2
1