#include<iostream>
#include<queue>
using namespace std;
struct date
{
int x,y,hour;
}pp;
int n,m,a,b;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int g[510][510],bk[510][510];
queue <date> q;
int main()
{
cin>>n>>m>>a>>b;
int x,y;
while(a--)
{
cin>>x>>y;
q.push({x,y,0});
bk[x][y]=1;
}
while(!q.empty())
{
date now=q.front();
q.pop();
for(int i=0;i<4;i++)
{
pp.x=now.x+dx[i];
pp.y=now.y+dy[i];
pp.hour=now.hour+1;
if(pp.x>=1&&pp.x<=n&&pp.y>=1&&pp.y<=m&&bk[pp.x][pp.y]==0)
{
bk[pp.x][pp.y]=1;
g[pp.x][pp.y]=pp.hour;
q.push(pp);
}
}
}
while(b--)
{
cin>>x>>y;
cout<<g[x][y]<<endl;
}
return 0;
}
洛谷 P1332 血色先锋队
最新推荐文章于 2024-05-28 09:37:13 发布