比赛 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(){;}