AT_abc276_c [ABC276C] Previous Permutation

Description

[problemUrl]: https://atcoder.jp/contests/abc276/tasks/abc276_c $ (1,\ \dots,\ N) $ の順列 $ P\ =\ (P_1,\ \dots,\ P_N) $ が与えられます。ただし、$ (P_1,\ \dots,\ P_N)\ \neq\ (1,\ \dots,\ N) $ です。 $ (1\ \dots,\ N) $ の順列を全て辞書順で小さい順に並べたとき、$ P $ が $ K $ 番目であるとします。辞書順で小さい方から $ K-1 $ 番目の順列を求めてください。 順列とは? $ (1,\ \dots,\ N) $ の**順列**とは、$ (1,\ \dots,\ N) $ を並べ替えて得られる数列のことをいいます。 辞書順とは? 長さ $ N $ の数列 $ A\ =\ (A_1,\ \dots,\ A_N),\ B\ =\ (B_1,\ \dots,\ B_N) $ に対し、$ A $ が $ B $ より**辞書順で真に小さい**とは、ある整数 $ 1\ \leq\ i\ \leq\ N $ が存在して、下記の $ 2 $ つがともに成り立つことをいいます。 - $ (A_{1},\ldots,A_{i-1})\ =\ (B_1,\ldots,B_{i-1}) $ - $ A_i $

Input Format

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

Output Format

求める順列を $ Q\ =\ (Q_1,\ \dots,\ Q_N) $ として、$ Q_1,\ \dots,\ Q_N $ をこの順に空白区切りで一行に出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 100 $ - $ 1\ \leq\ P_i\ \leq\ N\ \,\ (1\ \leq\ i\ \leq\ N) $ - $ P_i\ \neq\ P_j\ \,\ (i\ \neq\ j) $ - $ (P_1,\ \dots,\ P_N)\ \neq\ (1,\ \dots,\ N) $ - 入力される値は全て整数 ### Sample Explanation 1 $ (1,\ 2,\ 3) $ の順列を辞書順で小さい順に並べると次のようになります。 - $ (1,\ 2,\ 3) $ - $ (1,\ 3,\ 2) $ - $ (2,\ 1,\ 3) $ - $ (2,\ 3,\ 1) $ - $ (3,\ 1,\ 2) $ - $ (3,\ 2,\ 1) $ よって $ P\ =\ (3,\ 1,\ 2) $ は小さい方から $ 5 $ 番目であり、求める順列、すなわち小さい方から $ 5\ -\ 1\ =\ 4 $ 番目の順列は $ (2,\ 3,\ 1) $ です。