不知道又在哪里挖坑。。。(思维难度不大但坑多。。。)
#include<bits/stdc++.h>
using namespace std;
const int N = 1e+3;
int x[N][9][9];
set<int> se;
int main(){
int n;
cin>>n;
for(int i = 0;i<n;i++){
for(int j = 0;j<9;j++){
for(int k = 0;k<9;k++){
cin>>x[i][j][k];
}
}
}
for(int i = 0;i<n;i++){
int ha = 1,lie = 1,g = 1;
se.clear();
for(int j = 0;j<9;j++){
for(int k = 0;k<9;k++){
se.insert(x[i][j][k]);
//if(x[i][j][k]>10) ha = 0;
}
if(se.size()!=9) ha = 0;
}
se.clear();
for(int j = 0;j<9;j++){
for(int k = 0;k<9;k++){
se.insert(x[i][k][j]);
//f(x[i][k][j]>10) lie = 0;
}
if(se.size()!=9) lie = 0;
}
for(int j = 0;j<=6;j+=3){//注意其不是每次加一。。。
for(int k = 0;k<=6;k+=3){
se.clear();
for(int u = j;u<=j+2;u++){
for(int v = k;v<=k+2;v++){
se.insert(x[i][u][v]);
//if(x[i][u][v]>10) g = 0;
}
}
if(se.size()!=9) g = 0;
}
}
//se.clear();
//cout<<ha<<" "<<lie<<" "<<g<<endl;
if(ha&&lie&&g) cout<<1<<endl;
else cout<<0<<endl;
}
return 0;
}