很奇怪的,最后的结果如果不 −1 ,那么只有 2,3 点能过;如果 −1 那么只有 1,4,5 点能过。
#include <bits/stdc++.h>
using namespace std;
int n,m,k,qk[301][301];
int main ()
{
cin>>n>>m>>k;
for(int a,b,i=1;i<=m;i++)
{
cin>>a>>b;
qk[11+a][11+b+2]=qk[11+a][11+b+1]=qk[11+a][11+b]=qk[11+a][11+b-1]=qk[11+a][11+b-1]=11;
qk[11+a+2][11+b]=qk[11+a+1][11+b]=qk[11+a-1][11+b]=qk[11+a-2][11+b]=11;
qk[11+a+1][11+b+1]=qk[11+a+1][11+b-1]=qk[11+a-1][11+b-1]=qk[11+a-1][11+b+1]=11;
}
for(int a,b,i=1;i<=k;i++)
{
cin>>a>>b;
for(int j=11+a-2;j<=11+a+2;j++)
for(int f=11+b-2;f<=11+b+2;f++)
qk[j][f]=11;
}
int ans=0;
for(int i=12;i<=n+11;i++)
for(int j=12;j<=n+11;j++)
{
if(qk[i][j]!=11) ans++;
}
cout<<ans;
// cout<<ans-1;
return 0;
}