#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,d[10001][3],wz[10001][2],ans[10001];
bool bz[501][501];
int dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
void hs(int x,int y,int tail)
{
for(int i=1;i<=b;i++)
{
if(x==wz[i][0] && y==wz[i][1])
{
ans[i]=d[tail][0];
return;
}
}
}
void bfs()
{
int head=0,tail=a;
while(head<tail)
{
head++;
for(int i=1;i<=4;i++)
{
int xx=d[head][1]+dx[i];
int yy=d[head][2]+dy[i];
if(xx>0 && yy>0 && xx<=n && yy<=m && bz[xx][yy]==0)
{
tail++;
bz[xx][yy]=1;
d[tail][0]=d[head][0]+1;
d[tail][1]=xx;
d[tail][2]=yy;
hs(xx,yy,tail);
}
}
}
}
int main()
{
cin>>n>>m>>a>>b;
for(int i=1;i<=a;i++)
{
d[i][0]=0;
cin>>d[i][1]>>d[i][2];
bz[d[i][1]][d[i][2]]=1;
}
for(int i=1;i<=b;i++)
{
cin>>wz[i][0]>>wz[i][1];
}
bfs();
for(int i=1;i<=b;i++)
{
cout<<ans[i]<<endl;
}
}
为毛40啊,有没有人帮我看一下
肯定是我太FW了