比赛 |
20201031 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
乳草的入侵 |
最终得分 |
100 |
用户昵称 |
Harry Potter |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2020-10-31 21:04:42 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
char a1[105][105];
int m,n,f[105][105],z1,z2,ans,s,num;
int dx[8]={-1,-1,-1,0,1,1,1,0},dy[8]={-1,0,1,1,1,0,-1,-1};
struct Node{
int x,y,step;
Node(int xx,int yy,int s){
x=xx,y=yy,step=s;
}
};
queue <Node> q;
void bfs(){
q.push(Node(z1,z2,0));
f[z1][z2]=1;
while(!q.empty() ){
Node now=q.front() ;
q.pop() ;
ans=now.step ;
for(int k=0;k<8;k++){
int x1=dx[k]+now.x ,y1=dy[k]+now.y ;
if(a1[x1][y1]=='.'&&!f[x1][y1] &&x1>=1&&y1>=1&&x1<=m&&y1<=n){
f[x1][y1]=1;num++;
q.push(Node(x1,y1,now.step +1));
}
}
}
}
int milkweed123(){
freopen("milkweed.in","r",stdin);
freopen("milkweed.out","w",stdout);
cin>>n>>m>>z2>>z1;
for(int i=m;i>=1;i--){
for(int j=1;j<=n;j++){
cin>>a1[i][j];
if(a1[i][j]=='*') s++;
}
}
bfs();
if(num+s+1==m*n) cout<<ans;
else cout<<-1;
return 0;
}
int huhu=milkweed123();
int main(){;}