WA求助!
查看原帖
WA求助!
728458
lht20090314楼主2022/11/25 22:15

自己写了一遍暴力过了,然后看题解里大佬的思路由写了一遍,但是没过,不知道哪里写错了,请大佬们帮忙看看

代码:

#include <iostream>
#include <cmath>
using namespace std;

int n, m, k, a[102][102], cnt;

int cb(int x, int y)
{
	if (x < 1 || y < 1 || x > n || y > n)
		return 0;
	return 1;
}

int main()
{
	cin >> n >> m >> k;
	for (int i = 1; i <= m + k; i++)  // 这里其实可以把火把和萤石放到一起
	{
		int x, y;
		cin >> x >> y;
		for (int j = -2; j <= 2; j++)
		{
			for (int k = -2; k <= 2; k++)
			{
				if ((i > m || abs(j) + abs(k) <= 2) && cb(x + j, y + j))  // 如果是萤石(i > m)或者 j + k 的绝对值不超过 2,就把该格变为 1
					a[x + j][y + j] = 1;
			}
		}
	}
	
	for (int i = 1; i <= n; i++)
	    for (int j = 1; j <= n; j++) if (a[i][j] == 0) cnt++;  // 统计没被点亮的方格数
	    
	cout << cnt << endl;
	
	return 0;
}
2022/11/25 22:15
加载中...