Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <set>
- int main()
- {
- using namespace std;
- bool correct = true;
- int table[9][9];
- // Reading table
- for (unsigned int i = 0; i < 9; i++)
- {
- for (unsigned int j = 0; j < 9; j++)
- {
- cin >> table[i][j];
- }
- }
- // Check nine 3x3 box
- // Just add each digit of box in set, then if set size == 9 => OK
- for (unsigned int i = 0; i < 9; i += 3)
- {
- for (unsigned int j = 0; j < 9; j += 3)
- {
- set<int> box;
- box.insert(table[i][j]);
- box.insert(table[i + 1][j]);
- box.insert(table[i + 2][j]);
- box.insert(table[i][j + 1]);
- box.insert(table[i + 1][j + 1]);
- box.insert(table[i + 2][j + 1]);
- box.insert(table[i][j + 2]);
- box.insert(table[i + 1][j + 2]);
- box.insert(table[i + 2][j + 2]);
- if (box.size() != 9)
- {
- correct = false;
- }
- }
- }
- // Check line
- for (unsigned int i = 0; i < 9; i++)
- {
- set<int> line;
- line.insert(table[i][0]);
- line.insert(table[i][1]);
- line.insert(table[i][2]);
- line.insert(table[i][3]);
- line.insert(table[i][4]);
- line.insert(table[i][5]);
- line.insert(table[i][6]);
- line.insert(table[i][7]);
- line.insert(table[i][8]);
- if (line.size() != 9)
- {
- correct = false;
- }
- }
- // Check column
- for (unsigned int i = 0; i < 9; i++)
- {
- set<int> column;
- column.insert(table[0][i]);
- column.insert(table[1][i]);
- column.insert(table[2][i]);
- column.insert(table[3][i]);
- column.insert(table[4][i]);
- column.insert(table[5][i]);
- column.insert(table[6][i]);
- column.insert(table[7][i]);
- column.insert(table[8][i]);
- if (column.size() != 9)
- {
- correct = false;
- }
- }
- if (correct)
- {
- cout << "Yes" << endl;
- }
- else
- {
- cout << "No" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement