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

Задача . E. Эйлеров обход


Эйлер — маленький милый бельчонок. Когда приходит осень, он запасается желудями на зиму. Интересный факт, что Эйлер обычно собирает желуди очень специфичным способом. Дерево, с которого он собирает желуди, можно представить как \(n\) желудей, соединенных \(n - 1\) веткой таким образом, что есть ровно один путь между каждой парой желудей. Пронумеруем желуди от \(1\) до \(n\).

Бельчонок выбирает один из желудей (не обязательно с номером \(1\)) как старт, затем обходит все желуди способом, который называется «Эйлеров обход» (см. примечание), собирая каждый из желудей, когда он посещает его в последний раз.

Сегодня утром Кейт наблюдала за Эйлером. Она записала на листочке все желуди, которые посетил Эйлер на своем пути. К сожалению, на пути домой она попала под дождь и часть чисел теперь невозможно прочитать. Девочка очень расстроилась, так как свои наблюдения она должна была показать учителю.

«Может быть, если я угадаю пропавшие числа, я все еще смогу показать это учителю!» — подумала Кейт. Помогите ей, восстановите любой Эйлеров обход некоторого дерева или скажите, что у нее где-то ошибка.

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

Первая строка содержит одно целое число \(n\) (\(1 \leq n \leq 5 \cdot 10^5\)) — количество желудей в дереве.

Вторая строка содержит \(2n - 1\) целое число \(a_1, a_2, \ldots, a_{2n-1}\) (\(0 \leq a_i \leq n\)) — Эйлеров обход, который выписала Кейт. \(0\) означает число, которое пропало из-за дождя.

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

Если нет никакого Эйлерова обхода, удовлетворяющего описанию, выведите "no" в единственной строке.

Иначе выведите на первой строке "yes", а на второй строке выведите искомый Эйлеров обход.

Любой подходящий Эйлеров обход будет считаться правильным, так как учитель не знает, как выглядело исходное дерево.

Примечание

Эйлеров обход дерева с \(n\) желудями — последовательность из \(2n - 1\) индекса желудей такая, что каждый желудь встречается хотя бы один раз, первый и последний желуди совпадают, и каждые два соседних в обходе желудя соединены веткой.


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

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