# Sudoku pair: solving and generation
* In this question, you have to write a k-sudoku puzzle pair solver and generator by encoding the problem to propositional logic and solving it via a SAT solver (https://pysathq.github.io/).
### Question 1
Given a sudoku puzzle pair S1, S2 (both of dimension k) as input, your job is to write a program to fill the empty cells of both sudokus such that it satisfies the following constraints
* Individual sudoku properties should hold.
* For each empty cell S1[i, j] ≠S2[i, j], where i is row and j is column.
#### Input:
Parameter k, single CSV file containing two sudokus. The first k * k rows are for the first sudoku and the rest are for the second sudoku. Each row has k * k cells. Each cell contains a number from 1 to k * k. Cell with 0 specifies an empty cell.
Output: If the sudoku puzzle pair doesn’t have any solution, you should return None otherwise return the filled sudoku pair.
### Question 2
In the second part, you have to write a k-sudoku puzzle pair generator. The puzzle pair must be maximal (have the largest number of holes possible) and must have a unique solution.
* Input: Parameter k
* Output: CSV file containing two sudokus in the format mentioned in Q1.
## Deliverables
The source code of your implementation.
A brief report (less than 5-pages) describing your implementation, assumptions, and limitations.
A set of test cases (at least 5) with the expected output. (tests folder).
The quality of all the above would affect your marks. The quality of all the above would affect your marks.




