#include <iostream>
using namespace std;
const int N = 1005;
char g[N][N];
int t[N][N];
int n, m, x1, y1, x2, y2;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, -1, 0, 1};
bool res = false;
void dfs(int x, int y) {
if (x == x2 && y == y2) {
res = true;
return;
}
if (x < 1 || x > n || y < 1 || y > m || t[x][y] == 1) {
return;
}
t[x][y] = 1;
for (int i = 0; i < 4; i++) {
int tx = x + dx[i];
int ty = y + dy[i];
if (g[tx][ty] == g[x][y] + 1 || g[x][y] == 'D' && g[tx][ty] == 'A')
dfs(tx, ty);
}
}
int main() {
cin >> n >> m;
cin >> x1 >> y1 >> x2 >> y2;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> g[i][j];
}
}
dfs(x1, y1);
if (res) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
混境之地7 dfs
最新推荐文章于 2024-08-31 15:48:32 发布