27/12/2020 | Очный тур личного первенства по спортивному программированию (G) |
05/07/2023 | Лето 2023-5 сложные (D) |
03/07/2024 | Лето 2024-5 сложные (D) |
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В Верховном Совете Марса некоторые члены дружат между собой, а некоторые строят друг другу козни.
Предположим, что в Верховном Совете попытаются применить известные правила "Враг моего врага — мой друг", "Друг моего врага — мой враг", "Враг моего друга — мой враг", "Друг моего друга — мой друг" и получить получить полные списки прямых и косвенных друзей и врагов для каждого члена Совета, то удастся ли это сделать без противоречий (попадание одного и того же человека в оба списка)? При получении списков возможно применений этих правил неограниченное количество раз.
Первая строка ввода содержит одно целое число N (1≤N≤100000) - количество членов Верховного Совета. Вторая строка ввода содержит одно целое число K (0≤K≤100000) - количество отношений дружбы. Далее следует K строк, содержащих два целых числа от 1 до N - номера членов Совета, находящихся в дружеских отношениях. Следующая строка ввода содержит одно целое число M (0≤M≤100000) - количество отношений вражды. Далее следует 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