#include <bits/stdc++.h>
using namespace std;
int main(){
char a[105][105];
int i,j,b,m,k,n,x,y,o,p,s=0;
cin>>n>>m>>k;
for(i=0;i<n;i++) {
a[0][i]=-1;
a[i][0]=-1;}
for(i=2;i<=m;i++){
cin>>x>>y;
for(j=x-1;j<=x+1;j++){
for(b=y-1;b<=y+1;b++){
if(a[j][b]!=-1){
a[j][b]++;
}
}
if(a[x+2][y]!=-1) a[x+2][y]++;
if(a[x-2][y]!=-1) a[x-2][y]++;
if(a[x][y+2]!=-1) a[x][y+2]++;
if(a[x][y-2]!=-1) a[x][y-2]++;
if(a[x+1][y]!=-1) a[x+1][y]++;
if(a[x-1][y]!=-1) a[x-1][y]++;
if(a[x][y+1]!=-1) a[x][y+1]++;
if(a[x][y-1]!=-1) a[x][y-1]++;
}
}
for(i=1;i<=k;i++){
if(k==0){
break;
}
cin>>o>>p;
for(j=o-2;j<=o+2;j++){
for(b=p-2;b<=p+2;b++){
if(a[j][b]!=-1){
a[j][b]++;
}
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(a[i][j]==0){
s++;
}
}
}
cout<<s;
return 0;
}
我自己看了一下,总是是第一个出红,这是为什吗? 思路是没问题的。