下载样例对了,但评测机显示wa
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int n;
bool vis[105][105];
vector<int> x,y;
string ans="yizhong";
int q[8][2]={{0,1},{1,0},{0,-1},{-1,0},{1,1},{-1,1},{-1,-1},{1,-1}};
int dfs(int nx,int ny,int l,int f){
if(l>6){
return 1;
}
int sx=nx+q[f][0],sy=ny+q[f][1];
if(nx<1||nx>n||ny<1||ny>n)return 0;
if(a[nx][ny]==ans[l]){
int lin=dfs(sx,sy,l+1,f);
if(lin==1){
vis[nx][ny]=lin;
}
return lin;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
if(a[i][j]=='y'){
x.push_back(i);
y.push_back(j);
}
}
}
int len=x.size();
for(int i=0;i<len;i++)
for(int j=0;j<8;j++)
dfs(x[i],y[i],0,j);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==1){
cout<<a[i][j];
}else{
cout<<"*";
}
}
cout<<endl;
}
return 0;
}