第31行是就j<=n
by chenzexin2012 @ 2024-03-23 12:26:47
RE是因为火把没判断越界
给你改了改:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,a[105][105],cnt;
int main(){
cin>>n>>m>>k;
for(int i=0;i<m;i++){
cin>>x>>y;
if(y+1<=n){
a[x][y+1]=1;
if(x-1>=1){
a[x-1][y+1]=1;
}
if(y+2<=n) a[x][y+2]=1;
if(x+1<=n) a[x+1][y+1]=1;
}
if(y-1>=1){
a[x][y-1]=1;
if(y-2>=1) a[x][y-2]=1;
if(x-1>=1) a[x-1][y-1]=1;
if(x+1<=n) a[x+1][y-1]=1;
}
a[x][y]=1;
if(x+1<=n){
a[x+1][y]=1;
if(x+2<=n) a[x+2][y]=1;
}
if(x-1>=0){
a[x-1][y]=1;
if(x-2>=0) a[x-2][y]=1;
}
}
for(int i=0;i<k;i++){
cin>>x>>y;
for(int j=x-2;j<=x+2;j++){
for(int l=y-2;l<=y+2;l++){
if(j>=1&&l>=1)a[j][l]=1;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]==0){
cnt++;
}
}
}
cout<<cnt;
return 0;
}
```
by chenzexin2012 @ 2024-03-23 12:37:27