报错信息:Wrong Answer.wrong output format Unexpected end of file - int32 expected
//tj 里说 map 会 TLE 那我就用 umap(逃
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mb=12345678;
int a[5][5],b[5][5],st;
unordered_map<int,int> vis,fa;//出现过 从哪个状态过来
vector<int> ans;//存答案经过
inline void cz1(int a[5][5]){//操作 1
int tmp=a[1][1];
a[1][1]=a[2][1],a[2][1]=a[3][1],a[3][1]=a[3][2];
a[3][2]=a[3][3],a[3][3]=a[2][3],a[2][3]=a[1][3],a[1][3]=a[1][2];
a[1][2]=tmp;
return ;
}
inline void cz2(int a[5][5]){//操作 2
int tmp=a[2][3];
a[2][3]=a[2][2],a[2][2]=a[2][1],a[2][1]=tmp;
return ;
}
inline int getnum(int a[5][5]){//数组转数字
int res=0;
for(int i=1;i<=3;i++)for(int j=1;j<=3;j++)res=res*10+a[i][j];
return res;
}
inline void getjz(int x,int a[5][5]){//数字转数组
for(int i=3;i>=1;i--)for(int j=3;j>=1;j--)a[i][j]=x%10,x/=10;
return ;
}
void bfs(){
queue<int> q;
q.push(st),vis[st]=1;
while(q.size()){
int u=q.front();
q.pop();
if(u==mb)return ;
getjz(u,a);
memcpy(b,a,sizeof(a));
cz1(a),cz2(b);
int v1=getnum(a),v2=getnum(b);
if(!vis[v1])vis[v1]=1,q.push(v1),fa[v1]=u;
if(!vis[v2])vis[v2]=1,q.push(v2),fa[v2]=u;
}
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
for(int i=1;i<=3;i++)for(int j=1;j<=3;j++)cin>>a[i][j];
st=getnum(a);
bfs();
int tot=mb;
while(fa[tot])tot=fa[tot],ans.push_back(tot);
if(!ans.size())return cout<<"UNSOLVABLE\n",0;
cout<<ans.size()<<"\n";
reverse(ans.begin(),ans.end());
for(int i=0;i<ans.size();i++){
getjz(ans[i],a);
for(int i=1;i<=3;i++,cout<<"\n")for(int j=1;j<=3;j++)cout<<a[i][j]<<" ";
cout<<"\n";
}
//for(int i=ans.size()-1;i>=0;i--)cout<<ans[i]<<"\n";
return 0;
}