明明已经打上表了结果还是错,求大佬纠正
#include <stdio.h>
int n, m, k;
int light[100][100];
void set_light(int x, int y, int value) {
if (x >= 0 && x <= n && y >= 0 && y <= n) {
light[x][y] += value;
}
}
int main() {
scanf("%d %d %d", &n, &m, &k);
for (int i = 0; i < m; i++) {
int x, y;
scanf("%d %d", &x, &y);
set_light(x - 2, y , 1);
set_light(x - 1, y , 1);
set_light(x + 1, y, 1);
set_light(x + 2, y, 1);
set_light(x , y, 1);
set_light(x , y + 1, 1);
set_light(x , y + 2, 1);
set_light(x , y - 1, 1);
set_light(x , y - 2, 1);
set_light(x + 1, y + 1, 1);
set_light(x + 1, y - 1, 1);
set_light(x - 1, y + 1, 1);
set_light(x - 1, y - 1, 1);
}
for (int i = 0; i < k; i++) {
int o, p;
scanf("%d %d", &o, &p);
set_light(o - 1, p - 2, 1);
set_light(o - 1, p - 1, 1);
set_light(o - 1, p , 1);
set_light(o - 1, p + 1, 1);
set_light(o - 1, p + 2, 1);
set_light(o , p - 2, 1);
set_light(o , p - 1, 1);
set_light(o , p , 1);
set_light(o , p + 1, 1);
set_light(o , p + 2, 1);
set_light(o -2 , p - 2, 1);
set_light(o -2, p - 1, 1);
set_light(o -2, p , 1);
set_light(o -2, p + 1, 1);
set_light(o -2, p + 2, 1);
set_light(o +2 , p - 2, 1);
set_light(o +2, p - 1, 1);
set_light(o +2, p , 1);
set_light(o +2, p + 1, 1);
set_light(o +2, p + 2, 1);
set_light(o + 1, p - 2, 1);
set_light(o + 1, p - 1, 1);
set_light(o + 1, p , 1);
set_light(o + 1, p + 1, 1);
set_light(o + 1, p + 2, 1);
}
int monster_count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (light[i][j] == 0) {
monster_count++;
}
}
}
printf("%d\n", monster_count);
return 0;
}