Codeforces Global Round 25
D
Buying Jewels
Codeforces
2000
原题
← CE →
翻译中…

Alice has $n$ coins and wants to shop at Bob's jewelry store. Today, although Bob has not set up the store yet, Bob wants to make sure Alice will buy exactly $k$ jewels. To set up the store, Bob can erect at most $60$ stalls (each containing an unlimited amount of jewels) and set the price per jewel for each stall to be an integer number of coins between $1$ and $10^{18}$.

翻译中…

Fortunately, Bob knows that Alice buys greedily: and she will go to stall $1$, buy as many jewels as possible, then go to stall $2$, buy as many jewels as possible, and so on until the last stall. Knowing this, Bob can choose the number of stalls to set up, as well as set the price for each stall so that Alice buys exactly $k$ jewels. Help Bob fulfill the task, or determine if it is impossible to do so.

翻译中…

Note that Alice does not need to spend all her coins.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains an integer $t$ ($1 \le t \le 1000$) — the number of test cases. The description of the test cases follows.

翻译中…

Each test case contains two positive integers $n$ and $k$ ($1 \le n, k \le 10^{18}$) — the number of coins Alice has and the number of jewels Bob wants Alice to have bought at the end.

翻译中…

Output

翻译中…

For each test case, print on one line "YES" if Bob can erect at most $60$ stalls and set the prices for the stalls such that Alice buys exactly $k$ jewels, or "NO" if it is impossible to do so.

翻译中…

If the answer is "YES", on the second line, print an integer $s$ ($1 \le s \le 60$) — the number of stalls to be set up by Bob. On the third line, print $s$ positive integers $p_1, p_2, \ldots, p_s$ ($1 \le p_i \le 10^{18})$ that represent such a satisfactory pricing $p$, where $p_i$ is the price per jewel for stall $i$. If there are multiple such $p$'s, print any of them.

翻译中…

Note

翻译中…

In the first test case, at the first stall, Alice buys $3$ jewels and is left with $1$ coin. This is not enough to buy any jewels for any of the remaining stalls, so Alice buys exactly $3$ jewels at the end.

翻译中…

In the third test case,

翻译中…
  • At the first stall, Alice buys $1$ jewel and is left with $127$ coins.
  • At the second stall, Alice buys $1$ jewel and is left with $63$ coins.
  • At the third stall, Alice buys $1$ jewel and is left with $31$ coins.
  • At the fourth stall, Alice buys $1$ jewel and is left with $15$ coins.
  • At the fifth stall, Alice buys $1$ jewel and is left with $7$ coins.
  • At the sixth stall, Alice buys $1$ jewel and is left with $3$ coins.
  • At the seventh stall, Alice buys $1$ jewel and is left with $1$ coin.
  • At the eighth stall, Alice buys $1$ jewel and is left with $0$ coins.
翻译中…

Therefore, Alice buys exactly $8$ jewels in total.

翻译中…

样例

Input #1
3
7 3
6 4
255 8
Output #1
YES
10
2 3 4 5 6 7 8 9 10 11
NO
YES
8
128 64 32 16 8 4 2 1
InputCopy OutputCopy
题目信息
题号
1951D
时间限制
2 s
内存限制
256 MB
标签
构造
贪心
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。