Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1
- #include <iostream>
- #include <vector>
- using namespace std;
- bool flag = false;
- void make(long long a, long long b, vector<long long> &p) {
- if(a == b) {
- flag = true;
- }
- else if(a > b) {
- //bad
- }
- else {
- p.push_back(a*2);
- make(a*2, b, p);
- if(!flag) {
- p.erase(p.end()-1);
- p.push_back(a*10+1);
- make(a*10+1, b, p);
- if(!flag) {
- p.erase(p.end()-1);
- }
- }
- }
- }
- int main()
- {
- long long a, b;
- cin >> a >> b;
- vector<long long> p;
- p.push_back(a);
- make(a, b, p);
- if(p.size() == 1) {
- cout << "NO"<< endl;
- return 0;
- }
- cout << "YES" << endl;
- cout << p.size() << endl;
- for(int i = 0; i < p.size(); i++)
- cout << p[i] << ' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement