AT_code_festival_2017_qualb_c 3 Steps
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2017-qualb/tasks/code_festival_2017_qualb_c
りんごさんは $ N $ 頂点 の連結な無向グラフを持っています。 このグラフにはすでに $ M $ 本の辺があり、$ i $ 本目の辺は頂点 $ A_i $ と頂点 $ B_i $ を繋いでいます。
りんごさんは以下の操作を行うことで、辺を追加しようと思っています。
- 操作:頂点 $ u $ から辺をちょうど $ 3 $ 本辿ることによって頂点 $ v $ に辿り着けるような $ u,v\ (u\ \neq\ v) $ をとり、頂点 $ u $ と頂点 $ v $ の間に辺を追加する。ただし、すでに頂点 $ u $ と頂点 $ v $ の間に辺が存在する場合は辺を追加することはできない。
りんごさんが追加できる辺の本数の最大値を求めて下さい。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ $ : $ $ A_M $ $ B_M $
Output Format
追加できる辺の本数の最大値を出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 10^5 $
- $ 1\ \leq\ A_i,B_i\ \leq\ N $
- 多重辺や自己ループは存在しない
- 与えられるグラフは連結である
### Sample Explanation 1
下の図のように辺を追加していくと $ 4 $ 本の辺を追加することができ、これ以上辺を追加することはできません。 !\[\](https://img.atcoder.jp/code-festival-2017-qualb/6e99dccc06ac8b14d9ca2e297524bc0c.png)
### Sample Explanation 2
例えば、以下のような順番で辺を追加することによって $ 5 $ 本の辺を追加することができます。 - 頂点 $ 5 $ と頂点 $ 3 $ の間に辺を追加する。 - 頂点 $ 5 $ と頂点 $ 2 $ の間に辺を追加する。 - 頂点 $ 4 $ と頂点 $ 1 $ の間に辺を追加する。 - 頂点 $ 4 $ と頂点 $ 2 $ の間に辺を追加する。 - 頂点 $ 4 $ と頂点 $ 3 $ の間に辺を追加する。