样例能过0分球条反馈信息看不懂
查看原帖
样例能过0分球条反馈信息看不懂
1338740
_User114514_楼主2025/1/5 22:20

报错信息: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;
}
2025/1/5 22:20
加载中...