80分求助,第三个测试点错了
查看原帖
80分求助,第三个测试点错了
1230361
Blueyes_vbs楼主2023/12/26 16:03
#include <stdio.h>
int a[110][110];

int main() {
	int n, m, k, cnt = 0;
	scanf("%d%d%d", &n, &m, &k);
	int x[m + k], y[m + k];
	for (int i = 0; i < m + k; i++) {
		scanf("%d%d", &x[i], &y[i]);
	}
	for (int i = 0; i < m; i++) { //火把
		for (int j = y[i] - 2; j <= y[i] + 2 && j >= 1 ; j++) {
			a[x[i]][j] = 1;
		}
		for (int j = x[i] - 2; j <= x[i] + 2 && j >= 1 ; j++) {
			a[j][y[i]] = 1;
		}
		for (int j = x[i] - 1; j <= x[i] + 1 && j >= 1 ; j++) {
			a[j][y[i] + 1] = 1;
			a[j][y[i] - 1] = 1;
		}
	}
	for (int i = m; i < m + k; i++) { //萤石
		for (int j = y[i] - 2; j <= y[i] + 2 && j >= 1 ; j++) {
			for (int k = x[i] - 2; k <= x[i] + 2 && k >= 1 ; k++) {
				a[k][j] = 1;
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			if (a[i][j] == 0) {
				cnt++;
			}
		}
	}
	printf("%d", cnt);
	return 0;
}
2023/12/26 16:03
加载中...