这代码哪里错了
样例都对,加上去全WA,下载下来样例,结果是对的,用洛谷的IDE输出也是对的,真是搞不懂
代码:
#include<bits/stdc++.h>
using namespace std;
int n,fx[8][2]= {{1,0},{1,1},{0,1},{-1,-1},{-1,0},{0,-1},{-1,1},{1,-1}};
char a[1010][1010],b[8]= {'y','i','z','h','o','n','g'};
bool c[1010][1010];
bool dfs(int x,int y,int f,int dep) {
if(dep==7) {
return true;
} else {
if(a[x+fx[f][0]][y+fx[f][1]]==b[dep]) {
if(dfs(x+fx[f][0],y+fx[f][1],f,dep+1)&&c[x+fx[f][0]][y+fx[f][1]]==false) {
c[x+fx[f][0]][y+fx[f][1]]=true;
return true;
} else {
return false;
}
} else {
return false;
}
}
}
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
char x;
scanf("%c",&x);
if(x=='\n') {
scanf("%c",&x);
}
a[i][j]=x;
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(c[i][j]==false) {
if(a[i][j]=='y') {
for(int k=0; k<8; k++) {
if(dfs(i,j,k,1)) {
c[i][j]=true;
}
}
}
}
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(c[i][j]==false) {
printf("*");
} else {
printf("%c",a[i][j]);
}
}
printf("\n");
}
return 0;
}