SP3933 最小排列

题目描述

整数序列 $a_1, a_2, \ldots, a_n$ 的逆序数定义为满足 $i < j$ 且 $a_i > a_j$ 的数对 $(a_i, a_j)$ 的个数。 给定 $n$ 和逆序数 $m$,你的任务是找出集合 $\{1, 2, \ldots, n\}$ 的所有排列中,逆序数恰好为 $m$ 且字典序最小的那个排列。 排列 $a_1, a_2, \ldots, a_n$ 小于排列 $b_1, b_2, \ldots, b_n$ 当且仅当存在整数 $k$,使得对于所有 $1 \le j < k$ 都有 $a_j = b_j$,但 $a_k < b_k$。

输入格式

输入包含多组数据。 每行输入两个整数 $n$ 和 $m$。输入的最后一行两个整数均为 $-1$,不进行处理。

输出格式

对于每个测试点,用单个空格分隔数字,输出包含最小排列的一行。

说明/提示

$1 \le n \le 50,000$ 且 $0 \le m \le \frac{n(n-1)}{2}$。