У вас была последовательность \(a_1, a_2, \ldots, a_n\), состоящая из целых чисел от \(1\) до \(n\), не обязательно различных. По неизвестной причине вы решили посчитать следующую характеристику последовательности:
- Пусть \(r_i\) (\(1 \le i \le n\)) равно наименьшему \(j \ge i\), такому, что на подотрезке \(a_i, a_{i+1}, \ldots, a_j\) встречаются все различные числа из последовательности \(a\). Более формально, для любого \(k \in [1, n]\) существует \(l \in [i, j]\), такое, что \(a_k = a_l\). Если такого \(j\) не существует, \(r_i\) полагается равным \(n+1\).
- Характеристикой последовательности \(a\) назовем последовательность \(r_1, r_2, \ldots, r_n\).
К сожалению, последовательность
\(a\) потерялась, но у вас осталась её характеристика
\(r\). Вы хотите восстановить любую последовательность
\(a\), подходящую под характеристику, или определить, что в характеристику закралась ошибка, и такой последовательности не существует.
Выходные данные
Для каждого набора входных данных выведите следующее:
- Если не существует последовательности \(a\) с характеристикой \(r\), то выведите «No».
- Иначе, в первой строке выведите «Yes», а во второй строке выведите любую последовательность целых чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le n\)), подходящую под характеристику \(r\).
Вы можете выводить «
Yes» и «
No» в любом регистре (например, строки «
yEs», «
yes», «
Yes» и «
YES» будут распознаны как положительный ответ).
Примечание
В первом наборе входных данных подходит последовательность \(a = [1, 2, 1]\). На подотрезках \([1, 2]\) и \([2, 3]\) встречаются числа \(1\) и \(2\).
Во втором наборе входных данных можно показать, что подходящей последовательности \(a\) не существует.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 3 2 3 4 5 2 3 5 4 6 1 1 3 1 3 4 8 3 6 6 6 8 9 9 9
|
Yes
1 2 1
No
Yes
1
No
Yes
1 3 5 3 5 1 1 3
|