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