#HX2493. 加参数剪枝搜索问题题四:变形:从 A 到 B

提交2 通过1
通过率50%
时间限制1000ms
内存限制128MiB
    ID: 12792 传统题 1000ms 128MiB 尝试: 2 已通过: 1 难度: 普及 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

珅泽教育的刘老师有一个数a,他想把这个数变成b,为此他可以做两种变换.

1.把现有的数x变为2x;

2.把现有的数x后面接一个1(即x变为10x+1).

例如a=2,b=162,你可以以如下的方式把a变成b

2 -> 4 -> 8 -> 81 -> 162

你需要帮刘老师判断一下,把a变成b是否可能。

输入格式

输入共1行:

第1行,两个整数a,b,意义如题目描述.

输出格式

输出共3行:

第1行,一个字符串,如果变形是可能的,就输出"YES"否则输出"NO"(均不带引号).

第2行,一个整数k,意义与第3行一起解释.

第3行,用空格隔开的k个正整数a1,a2,⋯,ak,表示把a变成b的过程,其中a=a1,b=ak,过程中ai会变成ai+1.

如果有多种变形路线,输出优先使用第1种变换的路线

输入样例 #1

2 162

输出样例 #1

YES
5
2 4 8 81 162

输入样例 #2

1 1

输出样例 #2

YES
1
1

输入样例 #3

4 42

输出样例 #3

NO

数据范围与约定

1 ≤ a,b ≤ 10^9。