题目:
代码如下:
#include<bits/stdc++.h>
using namespace std;
struct node
{
int a[3][3];
bool operator == (const node &x) const{ //判断是否相等
for(int i = 0;i < 3;i++){
for(int j = 0;j < 3;j++){
if(a[i][j] != x.a[i][j]) return 0;
}
}
return 1;
}
int tonum(){ //将魔方每列拼起来
int res = 0;
for(int i = 0;i < 3;i++)
for(int j = 0;j < 3;j++)
res = res * 10 + a[i][j];
return res;
}
}init;
node rotate(node a,int s,int d)
{
node res = a;
if(d == -1){ //右移
int temp = res.a[s][2];
res.a[s][2] = res.a[s][1];
res.a[s][1] = res.a[s][0];
res.a[s][0] = temp;
}
else if(d == 1){ //左移
int temp = res.a[s][0];
res.a[s][0] = res.a[s][1];
res.a[s][1] = res.a[s][2];
res.a[s][2