#include<bits/stdc++.h>
using namespace std;
//#define int long long//
#define endl '\n'
#define emdl '\n'
typedef long long ll;
const int MAXN=505;
int n,m,a,b;
int mp[MAXN][MAXN];
int tx[]={0,0,0,1,-1};
int ty[]={0,1,-1,0,0};
void dfs(int x,int y,int s){
for(int i=1;i<=4;i++){
int dx=x+tx[i];
int dy=y+ty[i];
if(1<=dx&&dx<=n&&1<=dy&&dy<=m&&(mp[dx][dy]==-1||mp[dx][dy]>s)){
mp[dx][dy]=s;
dfs(dx,dy,s+1);
}
}
return;
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m>>a>>b;
memset(mp,-1,sizeof(mp));
for(int i=1,sr1,sr2;i<=a;i++){
cin>>sr1>>sr2;
mp[sr1][sr2]=0;
dfs(sr1,sr2,1);
}
for(int i=1,sr1,sr2;i<=b;i++){
cin>>sr1>>sr2;
cout<<mp[sr1][sr2]<<endl;
}
return 0;
}
虽然我知道正解是 bfs ,但我就是想用 dfs ,所以各位dalao能帮我调一下吗?