Порядок сборки механизма

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

Submit solution


Очки: 140
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

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

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

Между некоторыми деталями заданы зависимости сборки. Зависимость a b означает, что деталь a должна быть установлена раньше, чем деталь b.

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

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

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

В первой строке заданы два целых числа n и m — количество деталей и количество зависимостей.

В следующих m строках заданы зависимости. Каждая строка содержит два целых числа a и b, означающие, что деталь a должна быть установлена раньше детали b.

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

Выведите YES, если существует порядок сборки всех деталей, удовлетворяющий всем зависимостям. Иначе выведите NO.

Ограничения

  • 1 <= n <= 100000
  • 0 <= m <= 200000
  • 1 <= a, b <= n
  • Петель и кратных зависимостей нет.

Примеры

Пример 1

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

1 0

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

YES
Пример 2

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

4 3
1 2
2 3
1 4

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

YES

Комментарии

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