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 $ - 入力される数値はすべて整数