АВТ
Язык:

Дистанционный практикум по программированию

Задачи On-line статус ЧаВо Турниры
Для авторов:
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

75. Гамильтонов цикл

Ограничение времени: 1 секунды
Ограничение памяти:64000КБ
Баллы:10
Статистика Послать на проверку Задачу добавил Administrator

Изначально компьютерная сеть некоторой организации имела вид дерева, то есть от любого устройства сети до любого другого существовал единственный путь передачи данных. Для улучшения работы сети и повышения её надёжности было решено дополнительно соединить между собой те пары устройств, которые ещё не соединены напрямую, но расположены друг от друга достаточно близко. Термин "достаточно близко" определяется так: если кратчайший путь между двумя устройствами A и B проходит не более чем через два промежуточных устройства, то они считаются близкими (реальную длину кабелей учитывать не стали, поскольку она ограничена некоторой константой в силу физических причин). Пример исходной сети и сети после модернизации показан на рисунке:

 

Получив сеть такой слегка странной топологии, было решено исследовать её свойства. Одним из возникших вопросов был следующий: можно ли в данной сети организовать передачу по кольцу, т.е. существует ли такой путь, по которому пакет с данными проходит через все устройства сети по одному разу и возвращается в устройство-отправитель (т.е. существует ли в сети гамильтонов цикл).

 

Дана исходная структура сети, требуется определить, найдётся ли в этой сети после модернизации гамильтонов цикл, и если найдётся, то вывести один из них.

 

В первой строке входного файл находится число N — количество вершин дерева (3 <= N <= 100). Следующая N – 1 строка описывает рёбра дерева. В каждой строке содержатся два числа, ui и vi (от 1 до N) — номера вершин, соединённых данным ребром.

В первой строке выходного файла выведите слово "YES", если гамильтонов цикл существует, или "NO" в противном случае. Если цикл существует, то выведите его в следующей строке как N + 1 номер вершин (в порядке прохождения цикла), разделённых пробелами (первая вершина должна совпадать с последней). Если решений несколько, выведите любое из них.

Пример

STDIN

STDOUT

6

1 2

3 2

2 4

4 5

5 6

YES

3 5 4 6 2 1 3

 

 


Статистика Послать на проверку Автор/источник:
Задачи с соревнований / Межвузовские олимпиады / VIII Межвузовская олимпиада 2005 /
74. B - Окружность и точки 75. 76. D - СМС 77. E - Опасные пары 78. F - Лексикографический порядок
 
время генерации 0.452 сек.
© Copyright ВоГТУ, АВТ, Носов Д.А.