Лесная сеть сигналов

Просмотр в формате PDF

Submit solution


Очки: 120
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem types
Allowed languages
C++, Python

В заповеднике установили систему сигнальных вышек. Каждая вышка имеет свой номер от 1 до n, а некоторые пары вышек соединены кабелем.

Инженеры хотят понять, получилась ли у них правильная сеть сигналов.

Сеть считается правильной, если выполняются оба условия:

  • от любой вышки можно добраться до любой другой, переходя только по существующим кабелям;
  • в сети нет лишних кабелей, то есть удаление любого одного кабеля нарушит связность сети.

По сути, сеть должна быть устроена максимально экономно: все вышки должны быть связаны между собой, но при этом не должно быть ни одного лишнего соединения.

Вам дано описание сети. Определите, является ли она правильной.

Входные данные

В первой строке записаны два целых числа n и m — количество вышек и количество кабелей (1 ≤ n ≤ 1000, 0 ≤ m ≤ 1000).

В следующих m строках записаны по два целых числа a и b — номера вышек, которые соединены кабелем (1 ≤ a, b ≤ n, a ≠ b).

Гарантируется, что между одной и той же парой вышек не более одного кабеля.

Выходные данные

Выведите:

  • yes, если сеть правильная;
  • no в противном случае.

Пример 1

Входные данные

4 3
1 2
2 3
3 4

Выходные данные

yes

Пример 2

Входные данные

4 4
1 2
2 3
3 4
4 1

Выходные данные

no

Пример 3

Входные данные

5 3
1 2
2 3
4 5

Выходные данные

no

Пояснение

В первом примере все вышки соединены, и лишних кабелей нет.

Во втором примере есть цикл, значит один из кабелей лишний.

В третьем примере сеть распадается на несколько частей, поэтому от некоторых вышек нельзя добраться до остальных.


Комментарии

Еще нет ни одного комментария.