背景
:::epigraph
你构造序列成功了?
你构造序列成功
:::
题目描述
构造王国还在追击小 T……
定义一个长度为 n 的序列的前缀 max 序列 x 为 xi=max{aj:1≤j≤i},前缀 min 序列 y 为 yi=min{aj:1≤j≤i}。
对于给定的 n 和 k,请构造两个满足如下条件的长度为 n 的序列 a 和 b,如果不存在满足下述条件的两个序列,请报告无解:
- a 和 b 为 1 到 n 的排列。
- a 和 b 有至少一项不同,也即存在 i 满足 ai=bi。
- 对于 a 和 b 的中的任意一个序列,记其前缀 max 序列为 x,前缀 min 序列为 y,需要满足:
i=1∑n(xi−yi)=k.
输入格式
第一行输入一个整数 T (1≤T≤105),表示测试数据的数量。
每组测试数据一行输入两个整数 n 和 k (2≤n≤105,0≤k≤1010),表示序列的长度和前缀 max 和 min 的差。
保证所有测试数据的 ∑n≤3×105。
输出格式
对于每组测试数据,若存在满足条件的两个序列则输出两行。
第一行输出 n 个整数 a1,a2,…,an 表示你构造的第一个序列 a。
随后一行输出 n 个整数 b1,b2,…,bn 表示你构造的第二个序列 b。
若不存在满足条件的两个序列,则输出一行一个整数 −1。
如果有多个合法的答案则你可以输出其中任意一个。
3
2 1
2 0
5 12
1 2
2 1
-1
1 3 4 2 5
1 2 4 5 3
提示
样例 1 解释
对于第 3 组测试数据,我们验证第二个序列也就是 b 序列是否符合条件:
- {1,2,4,5,3} 是一个 1 到 5 的排列,因为其中各个整数都出现且仅出现了一次。
- 第二项 a2=3, b2=2, a2=b2。
- 其前缀 max 序列为 x={1,2,4,5,5},前缀 min 序列为 y={1,1,1,1,1},即得
$$\sum_{i=1}^{n}(x_i - y_i) = (1 - 1) + (2 - 1) + (4 - 1) + (5 - 1) + (5 - 1) = 0 + 1 + 3 + 4 + 4 = 12 = k.$$
提示
一个 1 到 n 的排列是一个长度为 n 且其中每个 1 到 n 的整数都出现且仅出现一次的序列。