Дзеркальне дерево?
MIRROR-TREE-CHECK (MT Check) — класична CAPTCHA у воротах системи планети Link-Cut. Вона полягає в простій перевірці дерева на дзеркальну симетрію.
Ось процес віддзеркалення дерева:
Виберіть дві вершини та (далі будемо називати це відображення відносно шляху -).
Підвісьте дерево від вершини .
Для кожної вершини на шляху від до створіть копію піддерев кожної з дочірніх вершин вершини та з'єднайте їх з тією ж вершиною, якщо піддерево цієї вершини не містить .
Ми будемо позначати цей процес як , що означає відображення дерева відносно шляху -.
Ось приклад відображення даного дерева відносно шляху між -ю та -ю вершинами:
Початкове дерево | Нове дерево, де сині вершини позначають вершини, які були додані |
Дерево називається дзеркальним, якщо ми можемо вибрати інше дерево та дві його вершини та , так що дерево та дерево схожі.
Ми вважаємо два дерева схожими, якщо ми можемо змінити нумерацію вершин в обох деревах так, щоб набори ребер цих двох дерев були ідентичні.
Ви були готові до цього завдання, але злий Чмякс здивував вас новим трюком. Кинувши заклинання на ворота, він додав один листок у вхідне дерево. Тепер ворота не пустять нікого.
Ви були майже в відчаї, коли раптом з'явився чарівник Фрусі, щоб допомогти вам. Фрусі володіє сильною магією і може спробувати розірвати заклинання, але для цього йому доведеться видалити листок, який додав Чмякс. Перевірка кожного листка зайняла б занадто багато часу і вимагала б занадто багато магії (навіть у Фрусі її не так багато). На щастя, наш чарівник дізнався про заклинання і розповів вам про побічний ефект: дерево до додавання листка однозначно було дзеркальним.
Фрусі зараз готує свої заклинання, і ваше завдання — знайти всі потенційні листки, які міг додати Чмякс (тобто всі такі листки, після видалення яких дерево стане дзеркальним, далі будемо називати поганими листками) або сказати, що Фрусі помилився і таких листків немає.
Вхідні дані
У першому рядку міститься одне ціле число — кількість вершин у дереві.
Кожна з наступних рядків містить два цілі числа та — ребро між та . Гарантується, що ці ребра утворюють дерево.
Вихідні дані
У першому рядку виведіть кількість поганих листків (якщо таких листків немає — виведіть ).
У другому рядку виведіть всі погані листки, відсортовані за зростанням або нічого не виводьте, якщо таких листків немає.
Приклади
Оцінювання
( бали): кожна вершина з'єднана не більше ніж з 2 іншими (дерево — бамбук);
( балів): не більше однієї вершини з'єднана з більш ніж 1 іншою вершиною (дерево — їжак);
( бал): ;
( балів): ;
( бали): ;
( балів): додаткових обмежень немає.