fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<int>ts;
  4.  
  5. bool transform(int a,int b) {
  6. if(a==b) {
  7. cout<<"YES"<<endl;
  8. cout<<ts.size()<<endl;
  9. for(int i=0;i<ts.size();++i) {
  10. cout<<ts[i]<<" ";
  11. }
  12. return true;
  13. }
  14. if(a>b) {
  15. return false;
  16. }
  17. ts.push_back(a*2);
  18. bool f=transform(a*2,b);
  19. ts.pop_back();
  20. ts.push_back(a*10+1);
  21. bool s=transform(a*10+1,b);
  22. ts.pop_back();
  23. return f || s;
  24.  
  25. }
  26.  
  27. int main() {
  28. long long a,b;
  29. cin>>a>>b;
  30. ts.push_back(a);
  31. bool flag = transform(a,b);
  32. if(!flag) {
  33. cout<<"NO";
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5288KB
stdin
100 40021
stdout
YES
5
100 200 2001 4002 40021