AT_arc227_b [ARC227B] Know Your Place
Description
長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます。
$ A $ の要素を並べ替えて得られる数列 $ B=(B_1,B_2,\ldots,B_N) $ であって、すべての $ i=1,2,\ldots,N $ について次の条件を満たすものが存在するか判定し、存在する場合は そのような数列を $ 1 $ つ構成してください。
- $ B_i $ は、 $ 1\le j\lt i $ かつ $ B_j\lt B_i $ を満たす整数 $ j $ の個数に等しい。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
条件を満たす数列 $ B $ が存在しない場合、`No` と出力せよ。
存在する場合、以下の形式で `Yes` と数列 $ B $ を出力せよ。
> Yes $ B_1 $ $ B_2 $ $ \ldots $ $ B_N $
条件を満たす数列が複数存在する場合は、どれを出力してもよい。
Explanation/Hint
### Sample Explanation 1
出力された数列は $ A $ を並べ替えたものです。 $ i=1,2,3,4 $ に対し、 $ B_i $ の左側にある $ B_i $ より小さい要素の個数は、それぞれ $ 0,1,0,3 $ 個で、 $ B_i $ と等しいです。
### Sample Explanation 2
値 $ 2 $ より小さい要素は $ 1 $ 個しかないため、どのように並べ替えても条件を満たせません。
### Sample Explanation 3
出力された数列は $ A $ を並べ替えたものです。 $ i=1,2,\ldots,7 $ に対し、 $ B_i $ の左側にある $ B_i $ より小さい要素の個数は、それぞれ $ 0,1,1,3,4,4,6 $ 個で、 $ B_i $ と等しいです。
### Constraints
- $ 1\le N\le 5\times 10^5 $
- $ 0\le A_i\lt N $
- 入力される数値はすべて整数