AT_abc425_b [ABC425B] Find Permutation 2

Description

長さ $ N $ の整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます。ここで、 $ A $ の各要素は $ -1 $ または $ 1 $ 以上 $ N $ 以下の整数です。 以下の条件を全て満たす長さ $ N $ の整数列 $ P=(P_1,P_2,\ldots,P_N) $ が存在するか判定し、存在するならば一つ求めてください。 - $ P $ は $ (1,2,\ldots,N) $ を並び替えてできる整数列である。 - $ i=1,2,\ldots,N $ に対し、 $ A_i \neq -1 $ ならば $ P_i=A_i $ が成り立つ。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

条件を全て満たす $ P $ が存在しない場合は `No` と出力せよ。 そうでない場合、条件を全て満たす $ P $ を以下の形式で出力せよ。 > Yes $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $ 条件を全て満たす $ P $ が複数存在する場合、どれを出力しても正答となる。

Explanation/Hint

### Sample Explanation 1 $ P=(3,1,2,4) $ とすると条件を全て満たします。 このほかにも、 $ P=(1,3,2,4) $ や $ P=(4,3,2,1) $ なども条件を全て満たします。 ### Sample Explanation 2 条件を全て満たす $ P $ は存在しません。 ### Constraints - $ 1\le N\le 10 $ - $ A_i=-1 $ または $ 1\le A_i \le N $ - 入力される値は全て整数