#ZF1171. 小任的早饭
小任的早饭
Description
最近小任发现自己和健康渐行渐远了,为了改善这一情况,他决定吃个早饭。
他决定吃 个烧饼,他的家里有 个烤箱,每个烧饼需要正反 面都烤过才可以食用。
每一轮,小任可以决定每个烤箱烤哪个烧饼,并且可以选择烤选定烧饼的任意一面,也可以选择不烤任何一张烧饼。每一轮每个烤箱最多只能烤一张烧饼的一面,并且不可以存在一张烧饼同时被两个烤箱烘烤的情况。在安排好每个烤箱之后,小任会同时启动所有烤箱的开关。在烘烤完成后,若还有烧饼存在至少一面没有被烤过,小任就会继续下一轮。
小任好奇他最少进行几轮可以把烧饼全部烤好,请你输出最少需要的轮数,并且输出每一轮每个烤箱的具体安排,若有多个符合条件的安排,输出任意一种。
Format
Input
本题有多组测试数据
第一行包含一个整数 ,其中 ,表示测试的用例个数。
接下来 行每行包含两个整数 ,其中 ,分别表示待烤烧饼的个数和烤箱的个数。
保证每组数据的 之和与 之和均不超过 。
Output
一共输出 组,每组按照以下格式输出答案:
第一行输出一个整数 表示最小轮数。
接下来 行,每行输出 个整数,表示每一轮烤箱的安排情况。
设第 个整数为 ,如果 表示第 个烤箱在这一轮烤第 块烧饼的正面,如果 则表示烤第 块烧饼的背面,如果 ,则说明第 个烤箱这一轮不烤任何烧饼。
其中 表示 的绝对值。
若有多个满足轮数最小的方案,输出任意一种。
Samples
1
3 7
2
1 2 3 0 0 0 0
-1 -2 -3 0 0 0 0
Note
第一个样例,最少需要 轮完成烘烤。
第一轮前三个烤箱分别烤了第 快烧饼的正面,
第二轮前三个烤箱分别烤了第 快烧饼的背面,
第二轮结束后所有烧饼都被烤完了。
Limitation
1s, 256KiB for each test case.