eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Книжный клуб

Книжный клуб

Книжный клуб Порто полон энтузиазма в связи с ежегодным мероприятием по обмену книгами! Каждый год участники приносят свою любимую книгу и пытаются найти другую понравившуюся книгу, которая принадлежит кому-то, кто готов с ними торговать. Я был на этой книжной бирже раньше, и определенно не хочу пропустить ее в этом году. Но чувствую, что торговля должна быть улучшена. В прошлом пары участников, заинтересованные в книгах друг друга, просто обменивались: представьте, что человек $a$ принес книгу, которая понравилась человеку $b$, и наоборот, тогда $a$ и $b$ обменяются своими книгами. Затем я понял, что многие участники остались с той же книгой, с которой они пришли ... Если бы вместо поиска пар я стал искать тройки, то смог бы найти более стоящие обмены! Представьте, что участнику $a$ нравится только книга участника $b$, в то время как $b$ нравится только книга $c$, а $c$ нравится книга $a$. Эти три человека могут обменять свои книги в цикле, и все будут счастливы! Но зачем останавливаться на тройках? Циклы могут быть больше и больше! Не могли бы Вы помочь мне узнать, можно ли всем выйти с новой книгой? Будьте осторожны, потому что участники не отдадут свою книгу, не получив взамен понравившуюся. Зная членов книжного клуба и книги, которые им нравятся, сможем ли мы найти циклы, чтобы каждый получил новую книгу? \InputFile В первой строке заданы два целых числа: $n~(2 \le n \le 10000)$ --- количество человек и $m~(1 \le m \le 20000, m \le n^2 - n)$ --- общее количество "деклараций интереса". Каждая из следующих $m$ строк содержит два целых числа $a$ и $b$, что указывает на то, что члену $a$ нравится книга, которую принес член $b~(0 \le a, b < n)$. Числа $a$ и $b$ никогда не будут одинаковыми (участнику никогда не нравится принесенная им же книга). \OutputFile Выведите \textbf{YES}, если мы сможем найти новую книгу для каждого члена клуба, и \textbf{NO} если это невозможно.
Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
5 5
0 1
1 2
2 3
3 4
4 0
Выходные данные #1
YES
Источник 2014 ACM Southwestern Europe Regional Contest (SWERC), Задача D