C++ Sudoku solver using backtracking