//用f数组记录行列状态 a数组记录四个2×2块的状态
#include #include
using namespace std; int f[9][5];
int a[5][5];
int main(){
int t;
cin>>t;
while(t--){
memset(f,0,sizeof f);
memset(a,0,sizeof a);
bool bl=1;
for(int i=1;i<=4;++i){
for(int j=1;j<=4;++j){
int b;
cin>>b;
if(f[i][b]==1||f[j+4][b]==1){
bl=0;
break;
}
a[(i>2?2:1)+((j>2?2:1)-1)*2][b]++;
f[i][b]=1;
f[4+j][b]=1;
}
if(!bl)break;
}
for(int i=1;i<=4;++i){
for(int j=1;j<=4;++j){
if(a[i][j]!=1){
bl=0;
break;
}
}
}
if(bl)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}

京公网安备 11010502036488号