H. Найти сам цикл
3000 мс · 256 МБ · всё или ничего
Простой неориентированный граф задан списком рёбер — петель и кратных рёбер нет. Найдите в нём цикл и выведите его.
Чтобы ответ был единственным, цикл ищется так. Обход запускается из вершин по возрастанию номера, соседи перебираются по возрастанию. Как только из текущей вершины виден уже посещённый сосед , не являющийся родителем, — найден цикл: путь в дереве обхода от до текущей вершины плюс ребро назад.
Выводится он начиная с и далее по пути вниз до текущей вершины.
Формат ввода
Первая строка содержит числа () и ().
Далее идут строк с рёбрами простого графа.
Формат вывода
Если цикла нет, выведите .
Иначе в первой строке — длина цикла, во второй — его вершины.
Примеры
ввод
4 4 1 2 2 3 3 4 4 1
вывод
4 1 2 3 4
ввод
3 2 1 2 2 3
вывод
-1
Войдите, чтобы отправлять решения.