Codeforces Round 375 (Div. 2) |
---|
Закончено |
Вам задан связный неориентированный граф, состоящий из n вершин и m рёбер. Каждое ребро соединяет две различные вершины, любую пару вершин соединяет не более одного ребра.
Также вам даны две различные вершины s и t, а также две величины ds и dt. Перед вами стоит задача построить любой остов заданного графа (обратите внимание, что граф невзвешенный), у которого степень вершины s не превышает ds, а степень вершины t не превышает dt, либо сообщить, что это невозможно.
Остов (покрывающее дерево) графа G — такой его подграф, который является деревом и содержит все вершины графа G. Иными словами, это связный граф, содержащий n - 1 ребро и полученный из заданного графа G удалением некоторых рёбер.
Степенью вершины называется число инцидентных этой вершине рёбер.
В первой строке следует два целых числа n и m (2 ≤ n ≤ 200 000, 1 ≤ m ≤ min(400 000, n·(n - 1) / 2)) — количество вершин и количество рёбер соответственно.
В следующих m строках следует описание рёбер графа. В каждой из строк находятся по два целых числа u и v (1 ≤ u, v ≤ n, u ≠ v) — номера вершин, соединённых очередным ребром. Гарантируется, что в графе не содержится петель и кратных рёбер, а также то, что граф связный.
В последней строке следуют четыре целых числа s, t, ds и dt (1 ≤ s, t ≤ n, s ≠ t, 1 ≤ ds, dt ≤ n - 1).
Если ответа не существует, выведите в первую строку «No» (без кавычек).
В противном случае в первую строку выведите «Yes» (без кавычек). В следующей (n - 1)-й строке выведите по два целых числа — описание рёбер остова. Каждое из рёбер остова должно быть выведено ровно один раз.
Выводить ребра можно в любом порядке. Концы ребер также можно выводить в любом порядке.
Если решений несколько, выведите любое из них.
3 3
1 2
2 3
3 1
1 2 1 1
Yes
3 2
1 3
7 8
7 4
1 3
5 4
5 7
3 2
2 4
6 1
1 2
6 4 1 4
Yes
1 3
5 7
3 2
7 4
2 4
6 1
Название |
---|