Технокубок 2021 - Отборочный Раунд 1 |
---|
Закончено |
Тентен продает оружие в магазине для ниндзя. Сегодня она хочет продать $$$n$$$ сюрикенов стоимостью $$$1$$$, $$$2$$$, ..., $$$n$$$ рё (местная валюта). В течение дня она будет выкладывать сюрикены на витрину, которая в начале дня пуста. Работа в магазине достаточно простая: в каждый момент времени либо Тентен выкладывает на витрину очередной сюрикен из еще не выложенных, либо к ней в магазин заходит ниндзя и покупает сюрикен с витрины. Поскольку ниндзя очень экономные, то в магазине они покупают самый дешевый из сюрикенов, которые сейчас лежат на витрине. В течение дня Тентен ведет список событий, и в ее списке есть два типа записей:
Сегодня у Тентен выдался удачный день, и у нее купили все сюрикены. В конце дня ей стало интересно, не ошиблась ли она в своих записях, и в каком порядке она могла выкладывать сюрикены, чтобы у нее получился такой список.
В первой строке дано целое число $$$n$$$ ($$$1\leq n\leq 10^5$$$) — количество сюрикенов.
В следующих $$$2n$$$ строках дана информация о произошедших событиях в формате, описанном выше. Гарантируется, что среди событий ровно $$$n$$$ событий первого типа, а также, что во всех событиях второго типа присутствуют все числа от $$$1$$$ до $$$n$$$ по одному разу.
Необходимо вывести «YES», если такой список мог получиться, и «NO» иначе.
Если список получиться мог, то в следующей строке необходимо вывести $$$n$$$ различных чисел через пробел — стоимости сюрикенов в порядке, в котором Тентен должна выкладывать их на витрину. Если существует несколько решений, выведите любое из них.
4 + + - 2 + - 3 + - 1 - 4
YES 4 2 3 1
1 - 1 +
NO
3 + + + - 2 - 1 - 3
NO
В первом примере Тентен сначала выложила на витрину сюрикены стоимостью $$$4$$$ и $$$2$$$. После этого к ней пришел покупатель и забрал самый дешевый сюрикен стоимостью $$$2$$$. После этого к оставшемуся сюрикену стоимостью $$$4$$$ она выложила сюрикен стоимостью $$$3$$$. После этого к ней пришел покупатель и забрал сюрикен стоимостью $$$3$$$. После этого она выложила сюрикен стоимостью $$$1$$$. После этого к ней пришел покупатель и забрал сюрикен стоимостью $$$1$$$. Потом к ней пришел еще один покупатель и забрал последний сюрикен стоимостью $$$4$$$. Обратите внимание, что порядок $$$[2, 4, 3, 1]$$$ также является верным.
Во втором примере первый покупатель пришел и купил сюрикен раньше, чем Тентен выложила хотя бы один сюрикен на витрину, что, очевидно, невозможно.
В третьем примере Тентен выложила на витрину все сюрикены, после этого к ней пришел покупатель и забрал сюрикен стоимостью $$$2$$$. Такого быть не могло, потому что этот сюрикен не был самым дешевым из тех, что лежали на витрине (ведь там был еще сюрикен стоимостью $$$1$$$).
Название |
---|