問題文
(1,dots,N) の順列 P=(P1,dots,PN) が与えられます。ただし、(P1,dots,PN)neq(1,dots,N) です。
(1dots,N) の順列を全て辞書順で小さい順に並べたとき、P が K 番目であるとします。辞書順で小さい方から K−1 番目の順列を求めてください。
順列とは?
(1,dots,N) の順列とは、(1,dots,N) を並べ替えて得られる数列のことをいいます。
辞書順とは?
長さ N の数列 A=(A1,dots,AN),B=(B1,dots,BN) に対し、A が B より辞書順で真に小さいとは、ある整数 1leqileqN が存在して、下記の 2 つがともに成り立つことをいいます。
- (A1,ldots,Ai−1)=(B1,ldots,Bi−1)
- Ai<Bi
制約
- 2leqNleq100
- 1leqPileqN,(1leqileqN)
- PineqPj,(ineqj)
- (P1,dots,PN)neq(1,dots,N)
- 入力される値は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N
P1 ldots PN
出力
求める順列を Q=(Q1,dots,QN) として、Q1,dots,QN をこの順に空白区切りで一行に出力せよ。
入力例 1
3
3 1 2
出力例 1
2 3 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) です。
入力例 2
10
9 8 6 5 10 3 1 2 4 7
出力例 2
9 8 6 5 10 2 7 4 3 1