- 数独验证
- 2016-10-20 15:46:09 @
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
int num[11][11]={0};
int c[10]={0};
using namespace std;
bool judge()
{
for(int z=1;z<=9;z++)
if(c[z]!=1) return false;
return true;
}
int main()
{
int n;
scanf("%d",&n);
for(int p=0;p<n;p++){
bool biao=true;
memset(c,0,sizeof(c));
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
scanf("%d",&num[i][j]);
c[num[i][j]]++;
}//行
bool biao=judge();
}
if(biao==0){
printf("Wrong\n");
break;
}
else{
for(int j=1;j<=9;j++){
memset(c,0,sizeof(c));
for(int i=1;i<=9;i++)
c[num[i][j]]++;//列
biao=judge();
if(biao==false) break;
}
if(biao==false) {
printf("Wrong\n");
break;
}
else{
for(int i=1;i<=9;){
for(int j=1;j<=9;){
memset(c,0,sizeof(c));
for(int s=i;s<=i+2;s++){
for(int t=j;t<=j+2;t++)
c[num[s][t]]++;
}
biao=judge();
if(biao==false) break;
j=j+3;
}
if(biao==false) break;
i=i+3;
}
if(biao==false){
printf("Wrong\n");
break;
}
}
}
if(biao==true) printf("Right\n");
}
return 0;
}