c++ sudoku solver