问题2260--直线上的zbc

2260: 直线上的zbc

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

给你两个整数 x 和 k 。zbc从 OX 轴上的点 0 开始。在一次移动中,他可以向左或向右跳跃一定的整数距离,这个距离不能被 k整除。

zbc到达 x 点所需的最小移动次数是多少?这些动作是什么?如果有多个答案,请打印出移动动作相乘最小的次数和动作。

输入

第一行包含一个整数 t ( 1 ≤ t ≤ 1000) - 测试用例数。

每个测试用例的唯一一行包含两个整数 x 和 k ( 1 ≤ x ≤ 100; 2 ≤ k ≤ 100 )--分别是跳转的终点和约束条件。

输出

对于每个测试用例,在第一行打印一个整数 n - zbc到达点 x 所需的最小移动次数。
第二行打印 n 个整数,每个整数都不能被 k 整除。正整数表示向右跳,负整数表示向左跳。跳转后的终点应该正好是 x 。
每次跳跃的距离应从 -10^9 到 10^9 。可以证明,对于任何跳跃次数最少的解,都存在一个跳跃次数相同的解,使得每次跳跃的距离都是从 -10^9 到 10^9 。
在给定的约束条件下,答案总是存在的。

样例输入 Copy

3
10 2
10 3
3 4

样例输出 Copy

2
9 1
1
10
1
3