线的个数从内到外分别为4 8 12,从中发现规律,一个内线对应两个中线对应三个外线,这六条线为一组始终对应,所以交换也为该六条线内部交换,所以判断每组是否符合对应线的数量即可
(图源解谜游戏-CSDN博客)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=505;
string a,b,c;
string G="GGGGGGGGGGGG";
string R="RRRRRRRR";
string Y="YYYY";
int main(){
int t;cin>>t;
while(t--){
cin>>a>>b>>c;
bool bl=false;
for(int i=0;i<4;i++){
unordered_map<char,int> mp;
mp[c[i]]++;
mp[b[i]]++;
mp[b[i+4]]++;
mp[a[i]]++;
mp[a[i+4]]++;
mp[a[i+8]]++;
if(mp['G']!=3||mp['R']!=2||mp['Y']!=1) bl=true;
}
cout<<(bl?"NO":"YES")<<endl;
}
}
/*
2
GYGGGGGGGGGG
RGRRRRRR
YRYY
YGGGRRRRGGGY
YGGGRRRR
YGGG
*/