#arc160a. [arc160_a]Reverse and Count

[arc160_a]Reverse and Count

问题陈述

给定一个排列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N)AA(1,2,,N)(1, 2, \dots, N) 的一个排列。
对于一对整数 (L,R)(L, R),满足 1LRN1 \leq L \leq R \leq N,令 f(L,R)f(L, R) 为通过将 AA 的第 LL 到第 RR 个元素逆序替换得到的排列,即用 AR,AR1,,AL+1,ALA_R, A_{R-1}, \dots, A_{L+1}, A_{L} 同时替换 AL,AL+1,,AR1,ARA_L, A_{L+1}, \dots, A_{R-1}, A_R

N(N+1)2\frac{N(N + 1)}{2} 种选择 (L,R)(L, R),使得 1LRN1 \leq L \leq R \leq N
如果将所有这些 (L,R)(L, R) 对应的排列 f(L,R)f(L, R) 按字典顺序列出并排序,从前开始数,第 KK 个排列是什么?

何为序列的字典顺序?

一个序列 S=(S1,S2,,SS)S = (S_1,S_2,\ldots,S_{|S|}) 若满足以下条件 1 或 2,则称其字典上较小于序列 T=(T1,T2,,TT)T = (T_1,T_2,\ldots,T_{|T|})。其中,S|S|T|T| 分别表示 SSTT 的长度。

  1. S<T|S| < |T| 并且 $(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})$。
  2. 存在整数 1imin{S,T}1 \leq i \leq \min\lbrace |S|, |T| \rbrace,满足以下两个条件。
    • $(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})$。
    • SiS_iTiT_i(作为数字)小。

约束条件

  • 1N70001 \leq N \leq 7000
  • 1KN(N+1)21 \leq K \leq \frac{N(N + 1)}{2}
  • AA(1,2,,N)(1, 2, \dots, N) 的一个排列。

输入

输入以以下格式从标准输入给出:

NN KK A1A_1 A2A_2 \dots ANA_N

输出

B=(B1,B2,,BN)B =(B_1, B_2, \dots, B_N) 为按字典顺序排序的排列 f(L,R)f(L, R) 中第 KK 个排列。
以以下格式打印 BB

B1B_1 B2B_2 \dots BNB_N


示例输入 1

3 5
1 3 2

示例输出 1

2 3 1

这是所有满足 1LRN1 \leq L \leq R \leq N(L,R)(L, R) 对应的排列 f(L,R)f(L, R)

  • f(1,1)=(1,3,2)f(1, 1) = (1, 3, 2)
  • f(1,2)=(3,1,2)f(1, 2) = (3, 1, 2)
  • f(1,3)=(2,3,1)f(1, 3) = (2, 3, 1)
  • f(2,2)=(1,3,2)f(2, 2) = (1, 3, 2)
  • f(2,3)=(1,2,3)f(2, 3) = (1, 2, 3)
  • f(3,3)=(1,3,2)f(3, 3) = (1, 3, 2)

当按字典顺序排列时,第五个排列是 f(1,3)=(2,3,1)f(1, 3) = (2, 3, 1),需要打印出来。


示例输入 2

5 15
1 2 3 4 5

示例输出 2

5 4 3 2 1

答案是 f(1,5)f(1, 5)


示例输入 3

10 37
9 2 1 3 8 7 10 4 5 6

示例输出 3

9 2 1 6 5 4 10 7 8 3