样例上面错误。
#include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef unsigned long long ll;
string s;
int a[7][4][4], b[7][4][4];
bool check(int x) {
if(s[x] == '1' && s[x - 1] == '2') return 1;
if(s[x] == '2' && s[x - 1] == '1') return 1;
if(s[x] == '3' && s[x - 1] == '4') return 1;
if(s[x] == '4' && s[x - 1] == '3') return 1;
}
void m1() {
b[5][1][3] = a[1][1][3];
b[5][2][3] = a[1][2][3];
b[5][3][3] = a[1][3][3];
b[2][1][3] = a[5][1][3];
b[2][2][3] = a[5][2][3];
b[2][3][3] = a[5][3][3];
b[6][1][3] = a[2][1][3];
b[6][2][3] = a[2][2][3];
b[6][3][3] = a[2][3][3];
b[1][1][3] = a[6][1][3];
b[1][2][3] = a[6][2][3];
b[1][3][3] = a[6][3][3];
a[5][1][3] = b[5][1][3];
a[5][2][3] = b[5][2][3];
a[5][3][3] = b[5][3][3];
a[2][1][3] = b[2][1][3];
a[2][2][3] = b[2][2][3];
a[2][3][3] = b[2][3][3];
a[6][1][3] = b[6][1][3];
a[6][2][3] = b[6][2][3];
a[6][3][3] = b[6][3][3];
a[1][1][3] = b[1][1][3];
a[1][2][3] = b[1][2][3];
a[1][3][3] = b[1][3][3];
b[4][1][1] = a[4][3][1];
b[4][1][2] = a[4][2][1];
b[4][1][3] = a[4][1][1];
b[4][2][1] = a[4][3][2];
b[4][2][3] = a[4][1][2];
b[4][3][1] = a[4][3][3];
b[4][3][2] = a[4][2][3];
b[4][3][3] = a[4][1][3];
a[4][1][1] = b[4][1][1];
a[4][1][2] = b[4][1][2];
a[4][1][3] = b[4][1][3];
a[4][2][1] = b[4][2][1];
a[4][2][3] = b[4][2][3];
a[4][3][1] = b[4][3][1];
a[4][3][2] = b[4][3][2];
a[4][3][3] = b[4][3][3];
}
void m2() {
b[5][1][3] = a[2][1][3];
b[5][2][3] = a[2][2][3];
b[5][3][3] = a[2][3][3];
b[2][1][3] = a[6][1][3];
b[2][2][3] = a[6][2][3];
b[2][3][3] = a[6][3][3];
b[6][1][3] = a[1][1][3];
b[6][2][3] = a[1][2][3];
b[6][3][3] = a[1][3][3];
b[1][1][3] = a[5][1][3];
b[1][2][3] = a[5][2][3];
b[1][3][3] = a[5][3][3];
a[5][1][3] = b[5][1][3];
a[5][2][3] = b[5][2][3];
a[5][3][3] = b[5][3][3];
a[2][1][3] = b[2][1][3];
a[2][2][3] = b[2][2][3];
a[2][3][3] = b[2][3][3];
a[6][1][3] = b[6][1][3];
a[6][2][3] = b[6][2][3];
a[6][3][3] = b[6][3][3];
a[1][1][3] = b[1][1][3];
a[1][2][3] = b[1][2][3];
a[1][3][3] = b[1][3][3];
b[4][3][1] = a[4][1][1];
b[4][2][1] = a[4][1][2];
b[4][1][1] = a[4][1][3];
b[4][3][2] = a[4][2][1];
b[4][1][2] = a[4][2][3];
b[4][3][3] = a[4][3][1];
b[4][2][3] = a[4][3][2];
b[4][1][3] = a[4][3][3];
a[4][3][1] = b[4][3][1];
a[4][2][1] = b[4][2][1];
a[4][1][1] = b[4][1][1];
a[4][3][2] = b[4][3][2];
a[4][1][2] = b[4][1][2];
a[4][3][3] = b[4][3][3];
a[4][2][3] = b[4][2][3];
a[4][1][3] = b[4][1][3];
}
void m3() {
b[1][1][1] = a[3][1][1];
b[1][1][2] = a[3][1][2];
b[1][1][3] = a[3][1][3];
b[4][1][1] = a[1][1][1];
b[4][1][2] = a[1][1][2];
b[4][1][3] = a[1][1][3];
b[2][1][1] = a[4][1][1];
b[2][1][2] = a[4][1][2];
b[2][1][3] = a[4][1][3];
b[3][1][1] = a[2][1][1];
b[3][1][2] = a[2][1][2];
b[3][1][3] = a[2][1][3];
a[3][1][1] = b[3][1][1];
a[3][1][2] = b[3][1][2];
a[3][1][3] = b[3][1][3];
a[1][1][1] = b[1][1][1];
a[1][1][2] = b[1][1][2];
a[1][1][3] = b[1][1][3];
a[4][1][1] = b[4][1][1];
a[4][1][2] = b[4][1][2];
a[4][1][3] = b[4][1][3];
a[2][1][1] = b[2][1][1];
a[2][1][2] = b[2][1][2];
a[2][1][3] = b[2][1][3];
b[5][3][1] = a[5][1][1];
b[5][2][1] = a[5][1][2];
b[5][1][1] = a[5][1][3];
b[5][3][2] = a[5][2][1];
b[5][1][2] = a[5][2][3];
b[5][3][3] = a[5][3][1];
b[5][2][3] = a[5][3][2];
b[5][1][3] = a[5][3][3];
a[5][3][1] = b[5][3][1];
a[5][2][1] = b[5][2][1];
a[5][1][1] = b[5][1][1];
a[5][3][2] = b[5][3][2];
a[5][1][2] = b[5][1][2];
a[5][3][3] = b[5][3][3];
a[5][2][3] = b[5][2][3];
a[5][1][3] = b[5][1][3];
}
void m4() {
b[1][1][1] = a[4][1][1];
b[1][1][2] = a[4][1][2];
b[1][1][3] = a[4][1][3];
b[4][1][1] = a[2][1][1];
b[4][1][2] = a[2][1][2];
b[4][1][3] = a[2][1][3];
b[2][1][1] = a[3][1][1];
b[2][1][2] = a[3][1][2];
b[2][1][3] = a[3][1][3];
b[3][1][1] = a[1][1][1];
b[3][1][2] = a[1][1][2];
b[3][1][3] = a[1][1][3];
a[3][1][1] = b[3][1][1];
a[3][1][2] = b[3][1][2];
a[3][1][3] = b[3][1][3];
a[1][1][1] = b[1][1][1];
a[1][1][2] = b[1][1][2];
a[1][1][3] = b[1][1][3];
a[4][1][1] = b[4][1][1];
a[4][1][2] = b[4][1][2];
a[4][1][3] = b[4][1][3];
a[2][1][1] = b[2][1][1];
a[2][1][2] = b[2][1][2];
a[2][1][3] = b[2][1][3];
b[5][3][1] = a[5][1][1];
b[5][2][1] = a[5][1][2];
b[5][1][1] = a[5][1][3];
b[5][3][2] = a[5][2][1];
b[5][1][2] = a[5][2][3];
b[5][3][3] = a[5][3][1];
b[5][2][3] = a[5][3][2];
b[5][1][3] = a[5][3][3];
a[5][3][1] = b[5][3][1];
a[5][2][1] = b[5][2][1];
a[5][1][1] = b[5][1][1];
a[5][3][2] = b[5][3][2];
a[5][1][2] = b[5][1][2];
a[5][3][3] = b[5][3][3];
a[5][2][3] = b[5][2][3];
a[5][1][3] = b[5][1][3];
}
int main() {
cin >> s;
getchar();
for(int i = 1; i <= 6; ++ i)
for(int j = 1; j <= 3; ++ j) {
for(int k = 1; k <= 3; ++ k)
a[i][j][k] = getchar() - '0';
getchar();
}
int len = s.size();
for(int i = 0; i < len; ++ i) {
if(i != 0 && check(i)) continue;
if(s[i] == '1') m1();
if(s[i] == '2') m2();
if(s[i] == '3') m3();
if(s[i] == '4') m4();
}
for(int i = 1; i <= 6; ++ i)
for(int j = 1; j <= 3; ++ j) {
for(int k = 1; k <= 3; ++ k)
printf("%d", a[i][j][k]);
putchar('\n');
}
return 0;
}