题面
今天,余大厨要为岁家的兄弟姐妹们准备一场烧烤盛宴。由于烤串数量众多,为了不让大家久等,余大厨决定使用一种特殊的魔法来加快翻面的速度。现在,他需要你的帮助来规划如何最高效地完成所有烤串的翻面工作。
现有 n 个烤串需要翻面。余大厨每次可以选择一个位置 进行翻面操作,但魔法效果会使第 i 个烤串及其左右各 k 个相邻烤串(即区间 )同时被翻面。需要注意的是,如果某一端超出烤串序列的范围(即 或 ),则魔法效果仅作用于序列内的烤串,注意每个烤串可以被重复翻转。
如果存在多种操作方案都能达到最少操作次数,需要输出字典序最小的方案。
- 字典序比较规则:比较两个操作序列时,从左到右逐个位置对比,第一个不同的位置中数值较小的序列字典序更小
- 示例:序列 [1,3] 的字典序小于 [1,4],序列 [1,3] 的字典序小于 [2,1]
输入格式
第一行包含一个整数 (),表示测试样例的个数。 接下来 行,每行包含两个整数 和 (,),分别表示该样例中烤串的数量和魔法的影响范围,两个整数之间用空格分隔。
输出格式
对于每个测试样例,输出两行:
- 第一行输出一个整数,表示使所有烤串翻面的最少操作次数
- 第二行输出若干个整数,表示每次翻面操作选择的位置(按升序排列,整数之间用空格分隔)。如果存在多种方案,输出字典序最小的方案。
样例
输入
2 7 2 5 1
输出
2 1 6 2 1 4
提示
在第一组示例中,第一次操作翻转了第1、2、3号烤串,第二次操作翻转了第4、5、6、7号烤串。
在第二组示例中,虽然翻转第2号和第5号烤串也是正确的解法,但翻转第2号和第4号烤串,或第1号和第5号烤串都是错误的解法——因为在这些操作后,第3号烤串仍会保持初始状态