12019. Граф контурний?


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам дано простий неорієнтований граф з \(N\) вершинами та \(M\) ребрами. Вершини пронумеровані \(1,2,…,N\), а ребра – \(1,2,…,M\).

Ребро \(i\) \((i=1,2,…,M)\) з’єднує вершини \(u_i\) ​ та \(v_i ​ \).

Визначте, чи є цей граф контурним.

Що таке простий неорієнтований граф? Простий неорієнтований граф — це граф без петель або множинних ребер, ребра яких не мають напрямку.

Що таке граф контурний? Граф з \(N\) вершинами, пронумерованими \(1,2,…,N\), називається графом контурним тоді і тільки тоді, коли існує послідовність \((v_1 ,v_2 ,…,v_N )\), яка є перестановкою \((1 ,2,…,N)\) і задовольняє такі умови:

  • Для всіх \(i=1,2,…,N−1\) існує ребро, що з’єднує вершини \(v_i\) ​ та \(v_{i+1}\) ​.
  • Якщо цілі числа \(i\) та \(j\) задовольняють \(1≤i,j≤N\) та \(∣i−j∣≥2\), то не існує ребра, яке з’єднує вершини \(v_i\) ​ та \(v_j ​\).

Обмеження

  • \(2≤N≤2×10^5\)
  • \(0≤M≤2×10^5\)
  • \(1≤u_i ​,v_i ​ ≤N\)\((i=1,2,…,M)\)
  • Усі значення у вхідних даних є цілими числами.
  • Граф, поданий у вхідних даних, простий.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(M\) рядків містять цілі числа \(u_i, v_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь: Yes або No.

Приклад вхідних даних

4 3
1 3
4 2
3 2

Приклад вихідних даних

Yes

Нижче наведено наведений граф, який є графом контурним.

Приклад вхідних даних

2 0

Приклад вихідних даних

No

Приклад вхідних даних

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

Приклад вихідних даних

No

Нижче наведено наведений граф, який не є графом контурним.


Коментарі

Ще немає коментарів.