#Lutece0759. 倒推数组
倒推数组
Migrated from Lutece 759 倒推数组
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
我们给出一个奇怪的公式:
其中 表示中的较小值。如果你对求和符号不太熟悉,我们也可以写成程序语言的形式:
int f = 0;
for (int i = 1; i <= n; ++i)
for ( int j = 1; j <= n ; ++j)
f = f + min (a[i], a[j]);
注意到这里是一个数组,下标从到,我们要求数组满足以下条件:
- 中所有元素都是正整数。
- 中所有元素互不相同。
给定和的值,请构造出合法的数组,如果有多个数组满足条件,输出字典序最小的答案。关于字典序的进一步说明请看Hint。
如果满足条件的数组不存在,输出。
Input
第一行是一个数(),表示测试数据的组数。
每组测试数据包括一行,两个数和,代表数列元素个数以及的值。()
Output
对于每一组测试数据,输出一行。
如果有解,输出个数,数之间用空格隔开,否则输出。
行末不允许有多余的空格,最后一个元素(如果有解)后面没有空格。
Samples
2
2 10
2 2
1 7
-1
Note
对于两个长度均为,下标从到的数组和,我们称的字典序严格小于,当且仅当存在下标,使得对于所有,均有和相等,同时满足。
例如,长度为的数组 的字典序小于数组,因为存在下标,有 , 而且。
Resources
第五届ACM趣味程序设计竞赛第二场(正式赛)