AT1202Contest_j Hated Number
题目描述
给定正整数 $ X,\ M\ (X\ \leq\ M) $。
你喜欢 $ M $ 及以下的正整数,但是唯独讨厌 $ X $。因此,你决定创建一个满足以下条件的集合 $ S $:
- $ S $ 由不超过 $ 10^5 $ 的不同的正整数组成。
- $ S $ 的元素个数不超过 $ 20 $。
- 对于满足 $ 1\ \leq\ k\ \leq\ M,\ k\ \neq\ X $ 的任意正整数 $ k $,存在 $ S $ 的一个子集,其元素之和为 $ k $。
- 不存在 $ S $ 的一个子集,其元素之和为 $ X $。
判断是否存在这样的集合 $ S $,如果存在,输出其中一个满足条件集合。
对于每个输入,回答 $ T $ 个测试用例。
输入格式
输入以以下格式给出:
> $ T $ $ \mathrm{case}_1 $ $ \vdots $ $ \mathrm{case}_T $
每个测试用例以以下格式给出:
> $ X\ M $
输出格式
对于每个输入,如果满足条件的集合 $ S $ 不存在,输出 $ -1 $;如果存在,输出一个满足条件的集合 $ S $,并以以下格式输出:
> $ N $ $ a_1\ a_2\ \dots\ a_N $
其中, $ N $ 是集合 $ S $ 的元素个数, $ (a_1,\ a_2,\ \dots,\ a_N) $ 是按升序排列的集合 $ S $ 的元素,满足以下约束:
- $ 1\ \leq\ N\ \leq\ 20 $
- $ 1\ \leq\ a_1\ \lt\ a_2\ \lt\ \dots\ \lt\ a_N\ \leq\ 10^5 $
对于每个输入,输出之后换行。
### 约束条件
- $ 1\ \leq\ T\ \leq\ 100 $
- $ 1\ \leq\ X\ \le\ M\ \leq\ 10^5 $
- $ M\ \geq\ 2 $
- 输入均为整数
Translate by [@XYQ_102](https://www.luogu.com.cn/user/712337)
说明/提示
### 制約
- $ 1\ \leq\ T\ \leq\ 100 $
- $ 1\ \leq\ X\ \le\ M\ \leq\ 10^5 $
- $ M\ \geq\ 2 $
- 入力は全て整数
### Sample Explanation 1
\- $ 1 $ つ目のケースでは, $ S=\lbrace\ 1,\ 2,\ 5\ \rbrace $ などが条件を満たします. - $ 2 $ つ目のケースで条件を満たす $ S $ はありません. - $ 3 $ つ目のケースでは, $ S=\lbrace\ 1,\ 2,\ 3,\ 4\ \rbrace $ などが条件を満たします.