fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<long int>v;
  4. bool transform(int a,int b) {
  5. if(b==0) {
  6. return false;
  7. }
  8. if(a==b) {
  9. cout<<"YES"<<endl;
  10. cout<<v.size()<<endl;
  11. reverse(v.begin(), v.end());
  12. for(int i=0;i<v.size();++i)cout<<v[i]<<" ";
  13. return true;
  14. }
  15. bool flag;
  16. if(b%2==0) {
  17. b=b/2;
  18. v.push_back(b);
  19. flag=transform(a,b);
  20. b=b*2;
  21. }
  22. else if(b%2!=0) {
  23. b=b-1;
  24. if(b%10==0) {
  25. b=b/10;
  26. v.push_back(b);
  27. flag=transform(a,b);
  28. b=b*10+1;
  29. b++;
  30. }
  31. else {
  32. return false;
  33. }
  34.  
  35. }
  36. return flag;
  37. }
  38.  
  39. int main() {
  40. long a,b;
  41. cin>>a>>b;
  42. v.push_back(b);
  43. bool flag=transform(a,b);
  44. if(!flag)cout<<"NO";
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
NO