版权声明:布呗之路的守望者 https://blog.csdn.net/hypHuangYanPing/article/details/81877975
/**
HDU 6401 E: Magic Square 模拟
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6401
给定一个3*3的矩阵 每次旋转一个2*2的子阵 求最终结果;
模拟即可;
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[5][5];
string b;
int main(){
int T,n,x,y;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
scanf("%1d",&a[i][j]);
while(n--){
cin>>b;
if(b[0]=='1'){
if(b[1]=='C'){
x=a[1][1];
a[1][1]=a[2][1];
a[2][1]=a[2][2];
a[2][2]=a[1][2];
a[1][2]=x;
}
else{
x=a[1][1];
a[1][1]=a[1][2];
a[1][2]=a[2][2];
a[2][2]=a[2][1];
a[2][1]=x;
}
}
else if(b[0]=='2'){
if(b[1]=='C'){
x=a[1][2];
a[1][2]=a[2][2];
a[2][2]=a[2][3];
a[2][3]=a[1][3];
a[1][3]=x;
}
else{
x=a[1][2];
a[1][2]=a[1][3];
a[1][3]=a[2][3];
a[2][3]=a[2][2];
a[2][2]=x;
}
}
else if(b[0]=='3'){
if(b[1]=='C'){
x=a[2][1];
a[2][1]=a[3][1];
a[3][1]=a[3][2];
a[3][2]=a[2][2];
a[2][2]=x;
}
else{
x=a[2][1];
a[2][1]=a[2][2];
a[2][2]=a[3][2];
a[3][2]=a[3][1];
a[3][1]=x;
}
}
else{
if(b[1]=='C'){
x=a[2][2];
a[2][2]=a[3][2];
a[3][2]=a[3][3];
a[3][3]=a[2][3];
a[2][3]=x;
}
else{
x=a[2][2];
a[2][2]=a[2][3];
a[2][3]=a[3][3];
a[3][3]=a[3][2];
a[3][2]=x;
}
}
}
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
printf("%d",a[i][j]);
}
printf("\n");
}
}
return 0;
}