比赛 202103省实验桐柏一中普及组联赛 评测结果 EEEEEEEEEE
题目名称 知己知彼,百战不殆 最终得分 0
用户昵称 锝镆氪锂铽 运行时间 0.855 s
代码语言 C++ 内存使用 15.78 MiB
提交时间 2021-03-22 19:15:11
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
const int maxN = 1800 + 10;

void update(int x, int y);

int n, m, ans = 0;
int area[maxN][maxN], cot[maxN];
int main(void){
	freopen("safenum.in", "r", stdin);
	freopen("safenum.out", "w", stdout);
	scanf("%d%d", &n, &m);
	cot[0] = n * n;
	for (int i = 1; i <= m; i ++){
		int x, y;
		scanf("%d%d", &x, &y);
		update(x, y);
		update(x + 1, y - 2);
		update(x + 2, y - 1);
		update(x + 1, y + 2);
		update(x + 2, y + 1);
		update(x - 1, y - 2);
		update(x - 2, y - 1);
		update(x - 1, y + 2);
		update(x - 2, y + 1);
	}
	printf("%d\n%d %d", cot[0], ans, cot[ans]);
	return 0;
}

void update(int x, int y){
	if (!x || !y)
		return;
	cot[area[x][y]] --;
	cot[++ area[x][y]] ++;
	ans = max(ans, area[x][y]);
}