S. 29. Readers of our Journal might remember Problem I. 136. about the Sudoku game. The aim of this well-known puzzle is to fill in a 9×9 grid with digits between 1 and 9 so that each row, column and 3×3 subgrid contain only one instance of each digit.
Write a program that solves a partially completed Sudoku grid according to the following rules:
- if there is a unique solution, then the output should be the complete grid (that is, 9×9 digits, given in 9 rows),
- if the solution is not unique, then a possible solution should be displayed in 9 rows, while a warning ``Solution is not unique'' in the 10th row,
- if there is no solution, then simply display ``No solution''.
The name of the input text file is given as the first argument in the command line. This file contains 9 rows with given digits. Dots denote missing digits. The output should be written to the standard output.
You should submit the source code of the program (s29.pas, s29.cpp, ...), a short documentation of your solution (s29.txt, s29.pdf, ...) and the name and version number of the compiler (e.g., Free Pascal 2.0, Borland C++ 3.1, ...).
Deadline expired on 15 November 2007.