#include #include using namespace std; typedef vector Array; Array aArray; Array bArray; void generate(int &a, Array &array) { array.push_back(a); // sude if (a % 2 == 0) { a /= 2; } // lichy else { a = 3*a +1; } } int main() { int a; int b; while (1) { cin >> a; cin >> b; int aSave = a; int bSave = b; if (a == 0 && b == 0) break; while (a!=1 || b!=1) { if (a != 1) generate(a,aArray); if (b != 1) generate(b,bArray); } aArray.push_back(1); bArray.push_back(1); for (int iA = 0 , aSize = aArray.size() ; iA < aSize ; ++iA) for (int iB = 0 , bSize = bArray.size() ; iB < bSize ; ++iB) if (aArray[iA] == bArray[iB]) { cout << aSave << " needs " << iA << " steps, " << bSave << " needs " << iB << " steps, " << "they meet at " << aArray[iA] << '\n'; iB=bSize; iA=aSize; } aArray.clear(); bArray.clear(); } return 0; }