atcoder#ABC287C. [ABC287C] Path Graph?

[ABC287C] Path Graph?

配点 : 300300

問題文

NN 頂点 MM 辺の単純無向グラフが与えられます。頂点には 1,2,,N1, 2, \dots, N の番号が、辺には 1,2,,M1, 2, \dots, M の番号が付けられています。 辺 i(i=1,2,,M)i \, (i = 1, 2, \dots, M) は頂点 ui,viu_i, v_i を結んでいます。

このグラフがパスグラフであるか判定してください。

単純無向グラフとは 単純無向グラフとは、自己ループや多重辺を含まず、辺に向きの無いグラフのことをいいます。
パスグラフとは 頂点に 1, 2, \dots, N の番号が付けられたN 頂点のグラフがパスグラフであるとは、(1, 2, \dots, N) を並べ変えて得られる数列 (v_1, v_2, \dots, v_N) であって、以下の条件を満たすものが存在することをいいます。
  • 全ての i = 1, 2, \dots, N-1 に対して、頂点 v_i, v_{i+1} を結ぶ辺が存在する
  • 整数 i, j1 \leq i, j \leq N, |i - j| \geq 2 を満たすならば、頂点 v_i, v_j を結ぶ辺は存在しない

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 0M2×1050 \leq M \leq 2 \times 10^5
  • 1ui,viN(i=1,2,,M)1 \leq u_i, v_i \leq N \, (i = 1, 2, \dots, M)
  • 入力される値は全て整数
  • 入力で与えられるグラフは単純

入力

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

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

出力

与えられたグラフがパスグラフなら Yes、そうでないなら No と出力せよ。

4 3
1 3
4 2
3 2
Yes

与えらえたグラフは下図のようであり、これはパスグラフです。

example_00

2 0
No

与えらえたグラフは下図のようであり、これはパスグラフではありません。

example_01

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

与えらえたグラフは下図のようであり、これはパスグラフではありません。

example_02