35分求助,走过路过来帮帮忙
查看原帖
35分求助,走过路过来帮帮忙
993941
xingchen666楼主2023/7/18 16:17
#include<bits/stdc++.h>
using namespace std;

const int N = 20;

int n,m;
int sx,sy,fx,fy;

int a[N][N];
int way[4][2] = {{0,-1},{-1,0},{0,1},{1,0}};
int member[N][3];

bool wj=true;
void dfs(int x, int y, int sum){
	member[sum][1] = x; member[sum][2] = y;
	if(x==fx && y==fy){
		wj=false;
		for(int i=0; i<=sum; i++){
			printf("(%d,%d)", member[i][1], member[i][2]);
			if(i<sum) printf("->");
		}
		cout<<endl;
		return;
	}
	
	for(int i=0;i<4;i++){
		int dx = x+way[i][0]; int dy = y+way[i][1];
		if(a[dx][dy] == 1){
			a[dx][dy] = 0;
			dfs(dx, dy, sum+1);
			a[dx][dy] = 1;
   		}
	}
}

int main(){
	memset(a, 0, sizeof(a));

	cin>>n>>m;
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			cin>>a[i][j];
		}
	}
	cin>>sx>>sy;
	cin>>fx>>fy;
	
	dfs(sx, sy, 0);
	
	if(wj) cout<<-1<<endl;


	return 0;
}

35分,剩下WA

各位dalao看一下哪里有问题啊

2023/7/18 16:17
加载中...