求调
查看原帖
求调
1344299
zhaohongbo1234楼主2025/1/18 21:36

传送门

#include<bits/stdc++.h>
#define int long long
using namespace std;
char c[10000][10000];
int vis[5000][5000];
int n,xx,yy,x2,y2;
void dfs(int x,int y,int dis){
	cout<<vis[x][y]<<x<<y<<c[x][y];
	if(x>n||x<1||y>n||y<1||(vis[x][y]!=-1&&dis>=vis[x][y])||c[x][y]=='1');
		return;
	vis[x][y]=dis;
	dfs(x+1,y,dis+1);
	dfs(x,y+1,dis+1);
	dfs(x,y-1,dis+1);
	dfs(x-1,y,dis+1);
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++){
			cin>>c[i][j];
			vis[i][j]=-1;
		}
	cin>>xx>>yy>>x2>>y2;
	dfs(xx,yy,0);
	cout<<vis[x2][y2];
	return 0;}

2025/1/18 21:36
加载中...