Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool numberChecker(string curr){
- vector<bool> numbers = { true, false, false, false, false, false, false, false, false, false };
- for (auto& c : curr) {
- int num = c - '0';
- if (numbers[num] == true) return false;
- numbers[num] = true;
- }
- for (int i = 1; i < numbers.size(); ++i) if (numbers[i] == false) return false;
- return true;
- }
- bool solution(vector<vector<int>> grid) {
- for (int i = 0; i < 9; ++i) {
- string currRow;
- for (int j = 0; j < 9; ++j) {
- currRow += grid[i][j] + '0';
- }
- if (!numberChecker(currRow)) return false;
- }
- for (int i = 0; i < 9; ++i) {
- string currCol;
- for (int j = 0; j < 9; ++j) {
- currCol += grid[j][i] + '0';
- }
- if (!numberChecker(currCol)) return false;
- }
- int rounds = 9;
- int sX = 0, eX = 2, sY = 0, eY = 2;
- while (rounds--) {
- string block;
- for (int i = sX; i <= eX; ++i) {
- for (int j = sY; j <= eY; ++j) {
- block += grid[i][j] + '0';
- }
- }
- if (!numberChecker(block)) return false;
- if (rounds == 8) { sX = 0; eX = 2; sY = 3; eY = 5; }
- if (rounds == 7) { sX = 0; eX = 2; sY = 6; eY = 8; }
- if (rounds == 6) { sX = 0; eX = 2; sY = 0; eY = 2; }
- if (rounds == 5) { sX = 3; eX = 5; sY = 3; eY = 5; }
- if (rounds == 4) { sX = 3; eX = 5; sY = 6; eY = 8; }
- if (rounds == 3) { sX = 3; eX = 5; sY = 0; eY = 2; }
- if (rounds == 2) { sX = 6; eX = 8; sY = 3; eY = 5; }
- if (rounds == 1) { sX = 6; eX = 8; sY = 6; eY = 8; }
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment