20分求助!!!
查看原帖
20分求助!!!
872386
Officer楼主2023/11/9 22:31
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
struct node
{
	int x,y;
}a[30],b[30];
int ans[105][105],sum;
int dirr[8][2]={{-2,0},{-1,0},{1,0},{2,0},{0,-2},{0,-1},{0,1},{0,2}};
int dir[24][2]={{-2,-2},{-2,-1},{-2,0},{-2,1},{-2,2},{-1,-2},{-1,-1},{-1,0},{-1,1},{-1,2},{0,-2},{0,-1},{0,1},{0,2},{1,-2},{1,-1},{1,0},{1,1},{1,2},{2,-2},{2,-1},{2,0},{2,1},{2,2}};
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>a[i].x>>a[i].y;
		for(int j=0;j<8;j++)
		{
			int dx=dirr[i][0]+a[i].x,dy=dirr[i][1];
			ans[dx][dy]=1;
		}
		ans[a[i].x][a[i].y]=1;
	}
	for(int i=1;i<=k;i++)
	{
		cin>>b[i].x>>b[i].y;
		for(int j=0;j<24;j++)
		{
			int dx=b[i].x+dir[j][0],dy=b[i].y+dir[i][1];
			ans[dx][dy]=1;
		}
		ans[b[i].x][b[i].y]=1;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(ans[i][j]==0)
			{
				sum++; 
			}
		}
	}
	cout<<sum/2<<endl;
    return 0;
}

2023/11/9 22:31
加载中...