两个WA一个RE,求各位大佬帮忙!
查看原帖
两个WA一个RE,求各位大佬帮忙!
778715
ZYX_Ajax楼主2023/4/9 00:07

本人十分的智慧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;
}
2023/4/9 00:07
加载中...