#CF1966D. 缺失的子序列和
缺失的子序列和
缺失的子序列和
每个测试用例时间限制:2 秒 内存限制:256 兆字节
给定两个整数 和 。找出一个长度不超过 25 的非负整数序列 ,满足以下条件: 1. 序列 中不存在和为 的子序列; 2. 对于所有满足 且 的整数 ,序列 中都存在和为 的子序列。
如果序列 可以通过删除 中若干个(可以是 0 个或全部)元素、且不改变剩余元素的顺序得到,那么 就是 的子序列。 例如: 是 的子序列。
题目保证:在给定约束下,一定存在解。
输入格式
第一行输入一个整数 (),表示测试用例的数量。 每个测试用例占一行,包含两个整数 和 (,),为题目描述的参数。
保证:所有测试用例的 之和不超过 。
输出格式
对于每个测试用例: 1. 第一行输出一个整数 (),表示你构造的序列长度; 2. 第二行输出 个整数 (),表示你构造的序列。
如果存在多个解,输出任意一个即可。
样例输入
5
2 2
6 1
8 8
9 3
10 7
样例输出
1
1
5
2 3 4 5 6
7
1 1 1 1 1 1 1
4
7 1 4 1
4
1 2 8 3
样例解释
第一个样例:我们需要构造能凑出和为 、但无法凑出和为 的序列。序列 满足要求。
第二个样例:所有元素都大于 ,因此无法凑出和为 ;而 到 中其余数字都直接存在于序列中,因此可以用长度为 1 的子序列凑出这些数。