求调
查看原帖
求调
1086735
LYQ_666楼主2025/2/7 20:13
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,m,cc,dd,sum=0;
	cin>>n>>m;
	bool a[1000][1000];
	char b[10000];
	int c[10000],d[10000];
	char aa;
	int q,w;
	for(int i=0;i<=n+3;i++)
	{
		for(int j=0;j<=n+3;j++)
		{
			a[i][j]=false;
		}
	}
	for(int i=1;i<=m;i++)
	{
		cin>>aa>>q>>w;
		b[i]=aa;
		c[i]=q;
		d[i]=w;
	}
	for(int i=1;i<=m;i++)
	{
		if(b[i]=='N')
		{
			cc=c[i];
			dd=d[i];
			a[cc][dd]=true;
			a[cc-2][dd-1]=true;
			a[cc-2][dd+1]=true;
			a[cc+2][dd-1]=true;
			a[cc+2][dd+1]=true;
			a[cc-1][dd-2]=true;
			a[cc+1][dd-2]=true;
			a[cc-1][dd+2]=true;
			a[cc+1][dd+2]=true;
		}
		if(b[i]=='R')
		{
			cc=c[i];
			dd=d[i];
			for(int q=1;q<=n;q++)
			{
				for(int w=1;w<=n;w++)
				{
					if(q==cc||w==dd) a[q][w]=true; 
				}
			}
		}
		if(b[i]=='Q')
		{
			cc=c[i];
			dd=d[i];
			for(int q=1;q<=n;q++)
			{
				for(int w=1;w<=n;w++)
				{
					if(q==cc||w==dd) a[q][w]=true;
					if(min(n-q,q-1)==min(n-w,w-1)) a[q][w]=true;
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]==true) sum+=1;
		}
	}
	cout<<sum;
	return 0;
}
2025/2/7 20:13
加载中...