#Lutece3296. 小 C 的排序
小 C 的排序
Description
一个序列被称为排列,当且仅当这个序列可以被表示为由 这 个数按某种顺序排成一排形成的序列,如 是一个排列,而 和 则不是排列。
对于排列 ,如果一对正整数 , 满足 而且 ,则称 这个有序对为 的一个逆序对。
在算法课上,小 C 学到了逆序对这个新概念,并且对这个概念很感兴趣。受此启发,小 C 定义了排列的 值。对于一个长度为 的排列 ,他定义 的 值为:
其中 表示满足 且 的位置 的个数。换句话说, 表示所有逆序对 中满足 的逆序对的个数。
小 C 对于 值的上界非常好奇。因此,他有 个关于 值的问题,每个问题包括两个整数 和 ,表示小 C 想要知道所有长度为 且逆序对个数为 的排列中, 值最大的是哪一个。
现在给出小 C 的所有问题,请你帮他一一回答。
Input
第一行一个整数 (),表示小 C 的问题个数;
接下来 行,每行表示小 C 的一个问题。
小 C 的每个问题包括两个整数 (),分别表示排列的长度和排列中逆序对的个数。
Output
共 行,每行 个整数表示所求排列,若有多个 值最大的排列,或不存在这样的排列,该行输出 。
Samples
3
3 1
5 10
5 11
2 1 3
5 4 3 2 1
-1
Note
对于第一个问题,共有 种可能的排列:
对于排列 ,其逆序对个数为 ,不符合要求.
对于排列 ,其逆序对个数为 ,,,。
对于排列 ,其逆序对个数为 ,,,。
对于排列 ,其逆序对个数为 ,不符合要求。
对于排列 ,其逆序对个数为 ,不符合要求。
对于排列 ,其逆序对个数为 ,不符合要求。
题目要求输出 值最大的排列,故答案为 。
Resources
电子科技大学第十三届 ACM 趣味程序设计竞赛