信息
- ID
- 2816
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 110
- 已通过
- 17
- 上传者
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;
struct id
{
int x,y,s;
};
queue<id>q;
int n,m,x,y,sx,sy,ans,k;
int xx[8]={-1,-1,-1,0,0,1,1,1};
int yy[8]={-1,0,1,-1,1,-1,0,1};
bool qp[110][110];
char ch;
int main()
{
memset(qp,false,sizeof(qp));
cin>>m>>n>>x>>y;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>ch;
if(ch=='.')qp[i][j]=true;
}
}
sy=x;
sx=n-y+1;
q.push(id{sx,sy,0});
qp[sx][sy]=false;
while(!q.empty())
{
int tx=q.front().x;
int ty=q.front().y;
ans=q.front().s;
q.pop();
for(int i=0;i<8;i++)
{
int nx=tx+xx[i];
int ny=ty+yy[i];
if(qp[nx][ny])
{
q.push(id{nx,ny,ans+1});
qp[nx][ny]=false;
}
}
}
cout<<ans;
return 0;
}
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;
struct id
{
int x,y,s;
};
queue<id>q;
int n,m,x,y,sx,sy,ans,k;
int xx[8]={-1,-1,-1,0,0,1,1,1};
int yy[8]={-1,0,1,-1,1,-1,0,1};
bool qp[110][110];
char ch;
int main()
{
memset(qp,false,sizeof(qp));
cin>>m>>n>>x>>y;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>ch;
if(ch=='.')qp[i][j]=true;
}
}
sy=x;
sx=n-y+1;
q.push(id{sx,sy,0});
qp[sx][sy]=false;
while(!q.empty())
{
int tx=q.front().x;
int ty=q.front().y;
ans=q.front().s;
q.pop();
for(int i=0;i<8;i++)
{
int nx=tx+xx[i];
int ny=ty+yy[i];
if(qp[nx][ny])
{
q.push(id{nx,ny,ans+1});
qp[nx][ny]=false;
}
}
}
cout<<ans;
return 0;
}