310459: CF1837A. Grasshopper on a Line

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

A. Grasshopper on a Linetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given two integers $x$ and $k$. Grasshopper starts in a point $0$ on an OX axis. In one move, it can jump some integer distance, that is not divisible by $k$, to the left or to the right.

What's the smallest number of moves it takes the grasshopper to reach point $x$? What are these moves? If there are multiple answers, print any of them.

Input

The first line contains a single integer $t$ ($1 \le t \le 1000$) — the number of testcases.

The only line of each testcase contains two integers $x$ and $k$ ($1 \le x \le 100$; $2 \le k \le 100$) — the endpoint and the constraint on the jumps, respectively.

Output

For each testcase, in the first line, print a single integer $n$ — the smallest number of moves it takes the grasshopper to reach point $x$.

In the second line, print $n$ integers, each of them not divisible by $k$. A positive integer would mean jumping to the right, a negative integer would mean jumping to the left. The endpoint after the jumps should be exactly $x$.

Each jump distance should be from $-10^9$ to $10^9$. In can be shown that, for any solution with the smallest number of jumps, there exists a solution with the same number of jumps such that each jump is from $-10^9$ to $10^9$.

It can be shown that the answer always exists under the given constraints. If there are multiple answers, print any of them.

ExampleInput
3
10 2
10 3
3 4
Output
2
7 3
1
10
1
3

Input

题意翻译

#### 题目描述 给定两个整数 $x$ 和 $k$。蚂蚱从 $0$ 点出发,沿着数轴上的 $OX$ 轴进行跳跃,每次可以向左或向右跳跃一定距离(距离必须为整数),但是不能跳到距离为 $k$ 的整数倍的位置上。 请你计算蚂蚱到达位置 $x$ 最少需要多少次跳跃,并输出蚂蚱的跳跃方案。如果有多种方案,请输出其中任意一种。 #### 输入格式 第一行包含一个整数 $t$,表示共有 $t$ 组测试数据。 接下来 $t$ 行,每行包含两个整数 $x$ 和 $k$。 #### 输出格式 对于每组数据,第一行包含一个整数 $n$,表示蚂蚱到达位置 $x$ 最少需要的跳跃次数。 第二行包含 $n$ 个整数,表示蚂蚱的跳跃方案。正整数表示向右跳跃,负整数表示向左跳跃。 保证有解。如果有多种方案,请输出其中任意一种。 注意:每次跳跃的距离需在 $−10^9$ 到 $10^9$ 之间。 Translate by @[ZeXic_B](https://www.luogu.com.cn/user/661274)

Output

题目大意:
题目名为“线上的蚱蜢”,给定两个整数x和k。蚱蜢从OX轴上的点0开始,每次可以跳到左或右的某个整数距离,但不能是k的倍数。要求找出蚱蜢到达点x所需的最小跳跃次数,并输出这些跳跃的具体数值。如果有多个答案,输出其中任意一个。

输入输出数据格式:
输入:
- 第一行包含一个整数t(1 ≤ t ≤ 1000),表示测试用例的数量。
- 接下来的每行包含两个整数x和k(1 ≤ x ≤ 100;2 ≤ k ≤ 100),分别表示终点和跳跃的限制。

输出:
- 对于每个测试用例,第一行输出一个整数n,表示蚱蜢到达点x所需的最小跳跃次数。
- 第二行输出n个整数,每个数都不能被k整除。正整数表示向右跳跃,负整数表示向左跳跃。跳跃后的终点应该是x。
- 每次跳跃的距离应该在-10^9到10^9之间。可以证明,对于任何最小跳跃次数的解,都存在一个跳跃距离在-10^9到10^9之间的解。
- 可以证明,在给定的约束下,答案总是存在的。如果有多个答案,输出其中任意一个。题目大意: 题目名为“线上的蚱蜢”,给定两个整数x和k。蚱蜢从OX轴上的点0开始,每次可以跳到左或右的某个整数距离,但不能是k的倍数。要求找出蚱蜢到达点x所需的最小跳跃次数,并输出这些跳跃的具体数值。如果有多个答案,输出其中任意一个。 输入输出数据格式: 输入: - 第一行包含一个整数t(1 ≤ t ≤ 1000),表示测试用例的数量。 - 接下来的每行包含两个整数x和k(1 ≤ x ≤ 100;2 ≤ k ≤ 100),分别表示终点和跳跃的限制。 输出: - 对于每个测试用例,第一行输出一个整数n,表示蚱蜢到达点x所需的最小跳跃次数。 - 第二行输出n个整数,每个数都不能被k整除。正整数表示向右跳跃,负整数表示向左跳跃。跳跃后的终点应该是x。 - 每次跳跃的距离应该在-10^9到10^9之间。可以证明,对于任何最小跳跃次数的解,都存在一个跳跃距离在-10^9到10^9之间的解。 - 可以证明,在给定的约束下,答案总是存在的。如果有多个答案,输出其中任意一个。

加入题单

上一题 下一题 算法标签: