Для заданного связного неориентированного взвешенного графа G минимальным остовным деревом называется подграф G, содержащий все вершины G, являющийся деревом, а также имеющий минимально возможную сумму весов ребер.
Вам дан граф G. Если вы запустите алгоритм по поиску минимального остовного дерева, вы найдете лишь одно минимальное остовное дерево, а другие ребра будут завидовать. Вам дано несколько запросов, каждый запрос содержит подмножество ребер графа G, определите, существует ли минимальное остовное дерево этого графа, содержащее все эти ребра, или нет.
Выходные данные
Для каждого запроса выведите «YES» (без кавычек), если существует минимальное остовное дерево со всеми данными ребрами, и «NO» (конечно же, без кавычек) иначе.
Примечание
На рисунке граф из первого примера:
Вес минимального остовного дерева равен 6.
Минимальное остовное дерево из ребер (1, 3, 4, 6) содержит все ребра из первого запроса, поэтому ответ на первый запрос «YES».
Ребра из второго запроса образуют цикл длины 3, поэтому не существует остовного дерева, включающего в себя эти три ребра. Поэтому ответ «NO».
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 7 1 2 2 1 3 2 2 3 1 2 4 1 3 4 1 3 5 2 4 5 2 4 2 3 4 3 3 4 5 2 1 7 2 1 2
|
YES
NO
YES
NO
|