I. Минимальное контролирующее множество
2000 мс · 64 МБ · всё или ничего
В двудольном графе нужно построить минимальное вершинное покрытие — наименьший набор вершин, такой что у каждого ребра хотя бы один конец в наборе. Максимальное паросочетание уже дано.
Формат ввода
В первой строке и () — размеры долей. В следующих строках описаны рёбра: сначала () — количество соседей -й вершины первой доли, затем сами номера в произвольном порядке. Сумма всех не превосходит .
В последней строке чисел () — некоторое максимальное паросочетание: пара -й вершины первой доли или , если она не покрыта.
Формат вывода
В первой строке выведите размер минимального вершинного покрытия. Во второй строке — количество вершин первой доли в нём, затем их номера в возрастающем порядке. В третьей строке — то же самое для второй доли.
Примеры
ввод
3 2 2 1 2 1 2 1 2 1 2 0
вывод
2 1 1 1 2
ввод
1 1 0 0
вывод
0 0 0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.