Trang Trí Đèn Năm Mới
unknown
c_cpp
2 months ago
885 B
5
Indexable
#include <bits/stdc++.h>
using namespace std;
const int mxN = 1011;
char s[mxN][mxN];
int m, n, q, a[mxN][mxN], b[mxN][mxN], f[mxN][mxN];
int Solve(int x1, int y1, int x2, int y2) {
return f[x2][y2]-f[x1-1][y2]-f[x2][y1-1]+f[x1-1][y1-1];
}
int main() {
cin >> m >> n >> q;
for(int i = 0; i < m; ++i)
cin >> s[i];
for(int i = 1; i <= m; ++i)
for(int j = 1; j <= n; ++j) a[i][j] = (s[i-1][j-1] == '*');
for(int i = 1; i < m; ++i)
for(int j = 1; j < n; ++j) b[i][j] = a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1];
for(int i = 1; i < m; ++i)
for(int j = 1; j < n; ++j) f[i][j] = f[i-1][j]+f[i][j-1]-f[i-1][j-1]+(b[i][j]%2);
for(int i = 1; i <= q; ++i) {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << (Solve(x1, y1, x2-1, y2-1) == 0 ? "YES" : "NO");
}
}
Editor is loading...
Leave a Comment