recursive_sol.cpp