就是暴力把所有位置标记上
#include <bits/stdc++.h>
using namespace std;
int __map[105][105] = {0}, n, m, k, a, b, ans;
bool pd(int x, int y) {
if (x < 1 || y < 1 || x > n || y > n) {
return 0;
}
return 1;
}
int main() {
cin >> n >> m >> k;
ans = n * n;
for (int i = 1; i <= m; i++) {
cin >> a >> b;
int l1 = b - 1, r1 = b + 1;
int l2 = a - 1, r2 = a + 1;
for (int i = l1; i <= r1; i++) {
for (int j = l2; j <= r2; j++) {
if (pd(i, j)) {
__map[i][j]++;
}
}
}
if (pd(a + 2, b)) {
__map[a + 2][b]++;
}
if (pd(a - 2, b)) {
__map[a - 2][b]++;
}
if (pd(a, b + 2)) {
__map[a][b + 2]++;
}
if (pd(a, b - 2)) {
__map[a][b - 2]++;
}
}
for (int i = 1; i <= k; i++) {
cin >> a >> b;
int l1 = b - 2, r1 = b + 2;
int l2 = a - 2, r2 = a + 2;
for (int i = l1; i <= r1; i++) {
for (int j = l2; j <= r2; j++) {
if (pd(i, j) || abs(a) + abs(b) <= 2) {
__map[i][j]++;
}
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (__map[i][j] != 0) {
ans--;
}
}
}
cout << ans << endl;
return 0;
}