Эйлер — маленький милый бельчонок. Когда приходит осень, он запасается желудями на зиму. Интересный факт, что Эйлер обычно собирает желуди очень специфичным способом. Дерево, с которого он собирает желуди, можно представить как $$$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", а на второй строке выведите искомый Эйлеров обход.
Любой подходящий Эйлеров обход будет считаться правильным, так как учитель не знает, как выглядело исходное дерево.
2
1 0 0
yes
1 2 1
4
1 0 3 2 0 0 0
yes
1 4 3 2 3 4 1
5
0 1 2 3 4 1 0 0 0
no
Эйлеров обход дерева с $$$n$$$ желудями — последовательность из $$$2n - 1$$$ индекса желудей такая, что каждый желудь встречается хотя бы один раз, первый и последний желуди совпадают, и каждые два соседних в обходе желудя соединены веткой.
Название |
---|