atcoder#ABC282D. [ABC282D] Make Bipartite 2

[ABC282D] Make Bipartite 2

Score : 400400 points

Problem Statement

You are given a simple undirected graph GG with NN vertices and MM edges (a simple graph does not contain self-loops or multi-edges). For i=1,2,,Mi = 1, 2, \ldots, M, the ii-th edge connects vertex uiu_i and vertex viv_i.

Print the number of pairs of integers (u,v)(u, v) that satisfy 1u<vN1 \leq u \lt v \leq N and both of the following conditions.

  • The graph GG does not have an edge connecting vertex uu and vertex vv.
  • Adding an edge connecting vertex uu and vertex vv in the graph GG results in a bipartite graph.
What is a bipartite graph?

An undirected graph is said to be bipartite if and only if one can paint each vertex black or white to satisfy the following condition.

  • No edge connects vertices painted in the same color.

Constraints

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • $0 \leq M \leq \min \lbrace 2 \times 10^5, N(N-1)/2 \rbrace$
  • 1ui,viN1 \leq u_i, v_i \leq N
  • The graph GG is simple.
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

Output

Print the answer.

5 4
4 2
3 1
5 2
3 2
2

We have two pairs of integers (u,v)(u, v) that satisfy the conditions in the problem statement: (1,4)(1, 4) and (1,5)(1, 5). Thus, you should print 22. The other pairs do not satisfy the conditions. For instance, for (1,3)(1, 3), the graph GG has an edge connecting vertex 11 and vertex 33; for (4,5)(4, 5), adding an edge connecting vertex 44 and vertex 55 in the graph GG does not result in a bipartite graph.

4 3
3 1
3 2
1 2
0

Note that the given graph may not be bipartite or connected.

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