Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

print2544. Друзья и враги

printДрузья и враги

Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В Верховном Совете Марса некоторые члены дружат между собой, а некоторые строят друг другу козни.

Предположим, что в Верховном Совете попытаются применить известные правила "Враг моего врага — мой друг", "Друг моего врага — мой враг", "Враг моего друга — мой враг", "Друг моего друга — мой друг" и получить получить полные списки прямых и косвенных друзей и врагов для каждого члена Совета, то удастся ли это сделать без противоречий (попадание одного и того же человека в оба списка)? При получении списков возможно применений этих правил неограниченное количество раз.

Первая строка ввода содержит одно целое число N (1N100000) - количество членов Верховного Совета. Вторая строка ввода содержит одно целое число K (0K100000) - количество отношений дружбы. Далее следует K строк, содержащих два целых числа от 1 до N - номера членов Совета, находящихся в дружеских отношениях. Следующая строка ввода содержит одно целое число M (0M100000) - количество отношений вражды. Далее следует M строк, содержащих два целых числа от 1 до N - номера членов Совета, находящихся во враждебных отношениях. Все пары чисел различны, нет пар с совпадающими числами. Отношения дружбы и вражды являются взаимными - если a друг b, то b друг a.

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

Пример ввода 1

7
3
1 2
3 1
5 6
2
2 4
3 4

Пример вывода 1

Yes

Пример ввода 2

3
0
3
1 2
2 3
3 1

Пример вывода 2

No
loading