#include #include #include #include #include using namespace std; class CarrotJumping { public: int theJump(int init); }; int CarrotJumping::theJump(int init) { deque ids; deque distances; int node; int distance; ids.push_back(init); distances.push_back(0); while (1) { node = ids[0]; distance = distances[0]; ids.pop_front(); distances.pop_front(); cout << "Processing node " << node << " with a distance of " << distance << endl; if (node == 0) return distance; ids.push_back((node*4+3)%1000000007); distances.push_back(distance+1); ids.push_back((node*8+7)%1000000007); distances.push_back(distance+1); } }