Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const int N = 101;const int S = 1 << 5;const int dir[] = {-1, 0, 1, 0, 0, -1, 0, 1};char p[N][N];int key[N][2], mark[N][N][S], n, m, k, a, b, c, d;int getS(int x, int y) {int s = 0;for (int i = 0; i < k; ++i) {if (key[i][0] == x && key[i][1] == y) {s |= (1 << i);}}return s;}int main() {scanf("%d %d %d %d %d %d %d", &n, &m, &k, &a, &b, &c, &d);for (int i = 0; i < n; ++i) {scanf("%s", p[i]);}memset(mark, -1, sizeof(mark));for (int i = 0; i < k; ++i) {scanf("%d %d", &key[i][0], &key[i][1]);}int res = (a == c && b == d) ? 0 : -1;