#include<bits/stdc++.h>
using namespace std;
int arr[505][505]={0};
int vis[505][505]={0};
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,-1,1};
typedef struct {
int x;
int y;
} p;
p gry[100005];
p lz[100005];
int n,m,a,b;
int bfs(){
queue<p> q;
int i;
for(i=1;i<=a;i++){
q.push(gry[i]);
arr[gry[i].x][gry[i].y]=0;
vis[gry[i].x][gry[i].y]=1;
}
while(!q.empty()){
p now;
now=q.front();
q.pop();
for(i=0;i<4;i++){
int xx=now.x+dx[i];
int yy=now.y+dy[i];
if(xx<=0||xx>n||yy<=0||yy>m)
continue;
if(vis[xx][yy]==1)
continue;
vis[xx][yy]=1;
arr[xx][yy]=arr[now.x][now.y]+1;
p next;
next.x=xx;
next.y=yy;
q.push(next);
}
}
}
int main(){
cin>>n>>m>>a>>b;
int j,i;
for(i=1;i<=a;i++){
cin>>gry[i].x>>gry[i].y;
}
for(i=1;i<=b;i++){
cin>>lz[i].x>>lz[i].y;
}
bfs();
for(i=1;i<=b;i++){
cout<<arr[lz[i].x][lz[i].y]<<endl;
}
}
全 RE 求各位大佬看看 但是不知道为什么在我自己的电脑上可以正常运行