显示原始代码
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int T, N, M;
scanf("%d", &T);
scanf("%d%d", &N, &M);
getchar();
char* p[N];
for (int i = 0; i < N; i++) {
p[i] = new char[M];
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%c", &p[i][j]);
}
getchar();
}
int n, m;
while (T--) {
scanf("%d%d", &n, &m);
getchar();
char* p1[n];
for (int i = 0; i < n; i++) {
p1[i] = new char[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%c", &p1[i][j]);
}
getchar();
}
int cnt = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
bool flag = true;
for (int u = max(0, i - (n - 1) / 2); u <= min(N - 1, i + (n - 1) / 2); u++) {
for (int v = max(0, j - (m - 1) / 2); v <= min(M - 1, j + (m - 1) / 2); v++) {
if (flag == false)
break;
if (p[u][v] == '#' && p1[u - (i - (n - 1) / 2)][v - (j - (m - 1) / 2)] == '#') {
flag = false;
}
}
if (flag == false)
break;
}
if (flag) {
cnt++;
printf("%d %d\n", i, j);
}
}
}
printf("%d\n", cnt);
for (int i = 0; i < n; i++) delete[] p1[i];
}
return 0;
}