十求调分
查看原帖
十求调分
1700250
qw_666楼主2025/7/2 14:29
#include<bits/stdc++.h>
using namespace std;
int x2,y2;
char pan[3][3],pan1[3][3],pan2[3][3]={{1,2,3},{8,0,4},{7,6,5}};
int qw[5][2]={{-1,0},{0,-1},{0,+1},{-1,0}};
int main(){
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			cin>>pan[i][j];
			pan1[i][j]=pan[i][j];
			if(pan[i][j]==0){
				x2=i;
				y2=j;
			}
		}
	}
	int use=0;
	int er=1;
	while(er){
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				if(pan[i][j]==pan2[1][j]&&pan[i][j]!=0){
					pan1[i][j]=-1;
				}
				else if(pan[i][j]==0){
					for(int oo=0;oo<=4;oo++){
						for(int ee=0;00<2;ee++){
							if(pan[i+qw[oo][ee]][j+qw[oo][ee+1]]==pan2[x2][y2]){
								x2=i+qw[oo][ee];
								y2=j+qw[oo][ee+1];
								pan[i+qw[oo][ee]][j+qw[oo][ee+1]]=0;
								use++;
							}
						}
					}
				}
				
			}
		}
		for(int i=0;i<3;i++){
			for(int j=0;j<=3;j++){
				if(pan[i][j]!=pan2[i][j]){
					er=1;
				}
				else{
					er=0;
				}
			}
		}
	}
	cout<<use;
	return 0;
}                                                                                                                               

2025/7/2 14:29
加载中...