Sắn có số nguyên \(a\) và muốn biến nó thành số \(b\) bằng cách áp dụng liên tiếp các phép sau (theo thứ tự tuỳ chọn):
- Phép A: thay số hiện tại \(x\) bằng \(2x\).
- Phép B: viết thêm chữ số \(1\) vào bên phải \(x\), tức là thay \(x\) bằng \(10x + 1\).
Hãy chỉ ra dãy phép biến đổi từ \(a\) đến \(b\), hoặc cho biết không thể. Không cần tối thiểu số phép. (Nếu dãy tồn tại thì nó duy nhất, vì \(2x\) luôn chẵn còn \(10x+1\) luôn tận cùng bằng \(1\).)
Input
- Một dòng gồm hai số nguyên \(a\) và \(b\).
Output
- Nếu không thể, in
NO. - Nếu có thể, in ba dòng:
YES; số nguyên \(k\) là số phần tử của dãy; và dãy \(x_1, x_2, \dots, x_k\) trong đó \(x_1 = a\), \(x_k = b\) và mỗi \(x_i\) nhận được từ \(x_{i-1}\) bằng một phép biến đổi.
Constraints
- \(1 \le a < b \le 10^9\).
Sample Input 1
3 1221
Sample Output 1
YES
5
3 6 61 122 1221
Sample Input 2
7 30
Sample Output 2
NO
Sample Input 3
9 361
Sample Output 3
YES
4
9 18 36 361
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.