该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
int matrix[9][9];
int i,j,k;
int arr[9];
int index_of(int i, int a[]){
int idx = -1;
for(int i = 0; i < 9; i++){
if(i == a[j]){
return j;
}
}
return -1;
}
int validate_row(){
int cnt = 0;
for(i = 0; i<9; i++){
cnt = 0;
for(j = 0;j < 9;j ++){
arr[cnt ++] = matrix[i][j];
}
for(int i = 1;i< 10;i++){
if(index_of(i,arr) == -1){
return 0;
}
}
}
return 1;
}
int validate_col(){
int cnt = 0;
int i,j;
for(i = 0; i<9; i++){
cnt = 0;
for(j = 0;j < 9;j ++){
arr[cnt ++] = matrix[j][i];
}
for(i = 1;i< 10;i++){
if(index_of(i,arr) == -1){
return 0;
}
}
}
return 1;
}
int validate_unit(){
int cnt;
int i,j,k;
for(i=0;i<3;i++){
cnt=0;
for(j=0;j<3;j++){
arr[cnt++]=matrix[i][j];
}for(k = 1;k< 10;k++){
if(index_of(k,arr) == -1){
return 0;
}
}
}
for(i=3;i<6;i++){
cnt=0;
for(j=3;j<6;j++){
arr[cnt++]=matrix[i][j];
}for(k = 1;k< 10;k++){
if(index_of(k,arr) == -1){
return 0;
}
}
}for(i=6;i<9;i++){
cnt=0;
for(j=6;j<9;j++){
arr[cnt++]=matrix[i][j];
}for(k = 1;k< 10;k++){
if(index_of(k,arr) == -1){
return 0;
}
}
}
return 1;
}
int main()
{
int i,j,number;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++){
scanf("%d",&number);
}
}
if(validate_row() == 1 ){
if(validate_col() == 1){
if(validate_unit() ==1){
printf("yes\n");
}else printf("no\n");
}else printf("no\n");
}else printf("no\n");
return 0;
}