Олимпиадный тренинг

Задача . E. Покрасить в тёмно-тёмно серый


Я вижу розового борова и хочу покрасить его в чёрный. Чёрные боровы выглядят гораздо круче и брутальнее, чем розовые. Поскольку Джагги теперь правитель леса, он хочет улучшить дипломатические отношения с соседними регионами.

Однако, некоторые правители запросили слишком много, чтобы между их регионом и лесом снова настал мир, поэтому Джагги решил прибегнуть к запугиванию. Когда дипломатическая миссия из другого региона приходит в лес, если они вдруг увидят толпу чёрных боровов, они могут и изменить своё мнение. Черные боровы реально страшные!

Лес Джагги можно представить в виде дерева (связного графа без циклов) с n вершинами. Каждая вершина представляет собой борова и покрашена в чёрный или розовый цвет. Джагги отправил в лес белку, чтобы она покрасила всех боровов в чёрный. Однако, белка не очень сообразительная, поэтому каждый раз когда она приходит в вершину, она просто меняет её цвет: розовая вершина становится чёрной, а чёрная розовой.

Джагги слишком занят, чтобы запланировать путь белки, поэтому ему требуется ваша помощь. Постройте такой маршрут белки по дереву, начинающийся в вершине 1, что после его выполнения все вершины покрашены в чёрный цвет. Маршрутом называется последовательность вершин, такая что между любой парой соседних вершин в маршруте есть ребро в дереве.

Входные данные

В первой строке входных данных записано целое число n (2 ≤ n ≤ 200 000), определяющее количество вершин в дереве. Далее следуют n строк содержащие по одному целому числу — цвета вершин, i-е из них равно 1, если вершина номер i покрашена в чёрный и  - 1, если в розовый.

В каждой из последующих n - 1 строк записаны два целых числа, означающие индексы вершин, соединённых ребром. Вершины нумеруются начиная с 1.

Выходные данные

Выведите путь белки как последовательность индексов вершин в порядке посещения. Если все вершины изначально чёрные, то выведите 1. Гарантируется, что решение всегда существует. Если существует несколько решений, выведите любое из них длиной не более 107.

Примечание

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

  • Из вершины 1 мы идём в вершину 4 и меняем её цвет на розовый.
  • Из вершины 4 мы идём в вершину 2 и меняем её цвет на розовый.
  • Из вершины 2 мы идём в вершину 5 и меняем её цвет на чёрный.
  • Из вершины 5 мы возвращаемся в вершину 2 и меняем её цвет на чёрный.
  • Из вершины 2 мы идём в вершину 4 и меняем её цвет на чёрный.
  • Наконец, мы идём в вершину 3 и меняем её цвет на чёрный.
  • Наконец, мы идём в вершину 4 и меняем её цвет на розовый.
  • Наконец, мы идём в вершину 1 и меняем её цвет на розовый.
  • Наконец, мы идём в вершину 4 и меняем её цвет на чёрный.
  • Наконец, мы идём в вершину 1 и меняем её цвет на чёрный.

Примеры
Входные данныеВыходные данные
1 5
1
1
-1
1
-1
2 5
4 3
2 4
4 1
1 4 2 5 2 4 3 4 1 4 1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя