60分恳求大佬帮助
查看原帖
60分恳求大佬帮助
797121
Elsdt楼主2023/8/6 00:26

第二第三点RE了不太明白 谢谢大佬

#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int a[142][142]={0},x[50],y[50],o[50],p[50],i,xp,yp;
bool g()
{
    if(x[i]-xp>=1&&x[i]+xp<=n&&y[i]-yp>=1&&y[i]+yp<=n)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
	cin>>n>>m>>k;
    for(i=1;i<=m;i++)
    {
    	cin>>x[i]>>y[i];
    	a[x[i]][y[i]]=1;
    	xp=1;
    	g;
    	if(true)
    	{
    	    a[x[i]-xp][y[i]]=1;
    	    a[x[i]+xp][y[i]]=1;
    	}
    	xp=2;
    	g;
    	if(true)
    	{
    	    a[x[i]-xp][y[i]]=1;
    	    a[x[i]+xp][y[i]]=1;
    	}
    	yp=1;
    	g;
    	if(true)
    	{
    	    a[x[i]][y[i]-yp]=1;
    	    a[x[i]][y[i]+yp]=1;
    	}
    	yp=2;
    	g;
    	if(true)
    	{
    	    a[x[i]][y[i]-2]=1;
    	    a[x[i]][y[i]+2]=1; 
    	}
    	xp=1,yp=1;
    	g;
    	if(true)
    	{
    	    a[x[i]-xp][y[i]-yp]=1;
		    a[x[i]+xp][y[i]+yp]=1;
		    a[x[i]-xp][y[i]+yp]=1;
		    a[x[i]+xp][y[i]-yp]=1;
    	}
	}
	for(i=1;i<=k;i++)
    {
    	cin>>o[i]>>p[i];
    	for(int j=o[i]-2;j<=o[i]+2;j++)//X轴
    	{
    		for(int g=p[i]+2;g>=p[i]-2;g--)//Y轴
    		{
    		    if(j>=1&&j<=n&&g>=1&&g<=n)
    		    {
    		       a[j][g]=1; 
    		    }
			}
		}
	}
	int ans=0;
	for(i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]==0)
			{
				ans++;
			}
		}
	}
	cout<<ans;
	return 0;
}
2023/8/6 00:26
加载中...