/ WHOJ / 题库 /

从A到B转型

从A到B转型

描述

Vasily 有一个数字\(a\),他想把它变成数字\(b\)。为此,他可以进行两种操作:

1.当前数字乘以\(2\)(即,替换数字\(X\)为\(2·X\));

2.附加数字\(1\)到当前数量的右侧(即,替换数字\(X\)为\(10·X + 1\))。

您需要帮助Vasily仅使用上述操作,将数字\(a\)转换为数字\(b\),或者说明这是不可能的。

请注意,在此任务中,您不需要最小化操作数。找到将\(a\)转换为\(b\)的任何方法就足够了。

格式

输入格式

第一行包含两个正整数\(a\)和\(b\)(\(1≤a<b≤10^9\)),表示Vasily拥有的数字\(a\)和他想要拥有的数字\(b\)。

输出格式

如果无法从数字\(a\) 变成数字\(b\),请打印\(“NO”\)(不带引号)。.

否则打印三行。

第一行打印\(“YES”\)(不带引号)。

第二行应该包含一个整数\(k\),转换序列的长度。

第三行打印转换序列\(x(1),x(2),...,x(k)\),其中:

\(x(1)\)应该等于\(a\),

\(x(k)\)应该等于\(b\),

\(x(i)\)应该使用两个描述的操作\((1<i≤k)\)中的任何一个从\(x(i-1)\)获得。

如果有多个答案,请打印其中任何一个。

样例1

样例输入1

2 162

样例输出1

YES
5
2 4 8 81 162

限制

时间:\(1s \)空间:\(256M\)

\(10\)%的数据:\(1≤a<b≤10\);

\(100\)%的数据:\(1≤a<b≤10^9\);

来源

地址:\(zloj,J2021\)域
作者:\(jialiang2509\)
模拟赛\(T2\)