本人十分的智慧debug能力太弱,迟迟找不到问题出在哪,请各位大佬帮帮忙!
以下是本人代码
#include <iostream>
#include <cstdio>
using namespace std;
int Map[105][105],x[105],y[105],o[105],p[105];
int main(){
int n,m,k,ans=0;
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++){
scanf("%d%d",&x[i],&y[i]);
Map[x[i]][y[i]] = 2;
}
for(int i=1;i<=k;i++){
scanf("%d%d",&o[i],&p[i]);
Map[o[i]][p[i]] = 3;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(Map[i][j] == 2){
if(Map[i-2][j] == 0) Map[i-2][j] = 1;
if(Map[i-1][j] == 0) Map[i-1][j] = 1;
Map[i][j] = 1;
if(Map[i+1][j] == 0) Map[i+1][j] = 1;
if(Map[i+2][j] == 0) Map[i+2][j] = 1;
if(Map[i-1][j-1] == 0) Map[i-1][j-1] = 1;
if(Map[i][j-1] == 0) Map[i][j-1] = 1;
if(Map[i+1][j-1] == 0) Map[i+1][j-1] = 1;
if(Map[i-1][j+1] == 0) Map[i-1][j+1] = 1;
if(Map[i][j+1] == 0) Map[i][j+1] = 1;
if(Map[i+1][j+1] == 0) Map[i+1][j+1] = 1;
if(Map[i][j-2] == 0) Map[i][j-2] = 1;
if(Map[i][j+2] == 0) Map[i][j+2] = 1;
}
if(Map[i][j] == 3){
for(int k=1;k<=5;k++){
for(int l=1;l<=5;l++){
if(Map[k][l] == 0) Map[k][l] = 1;
}
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(Map[i][j] == 0) ans++;
}
}
printf("%d",ans);
return 0;
}