#12344: CPP answer


gxxygxxy123 (Bean)

學校 : 臺北市私立東山高級中學
編號 : 56147
來源 : [140.113.123.110]
最後登入時間 :
2018-09-23 22:43:40
a016. 數獨(SUDOKU) | From: [140.113.209.197] | 發表日期 : 2017-07-09 17:08

#include <iostream>
#include <cstring>
using namespace std;

int main(void){
int sudoku[9][9];
while(cin >> sudoku[0][0]){
bool flag = true;
int arr[9] = {0};
for(int i = 0; i < 9; i++){
for(int j = 0;j < 9; j++){
if(i == 0 && j == 0)
continue;
else
cin >> sudoku[i][j];
}
}

for(int i = 0; i < 9;i ++){
for(int j = 0;j < 9; j++){
if(arr[sudoku[i][j] - 1] == 0)
arr[ sudoku[i][j] - 1 ] = 1;
else{
flag = false;
}
}
memset(arr, 0, sizeof(arr));
}
for(int j = 0; j < 9; j++){
for(int i = 0;i < 9; i++){
if(arr[sudoku[i][j] - 1] == 0)
arr[ sudoku[i][j] - 1] = 1;
else{
flag = false;
}
}
memset(arr, 0, sizeof(arr));
}
for(int m = 0;m < 2; m++){
for(int n = 0;n < 2; n++){
for(int i = 3*m; i < 3*m+3; i++){
for(int j = 3*n; j < 3*n+3; j++){
if(arr[sudoku[i][j] - 1] == 0)
arr[ sudoku[i][j] - 1] = 1;
else{
flag = false;
}
}
}
memset(arr, 0, sizeof(arr));
}
}
if(flag)
cout << "yes" << endl;
else
cout << "no" << endl;
}
return 0;
}

 
ZeroJudge Forum