求调
哪里CE了?
#include<bits/stdc++.h>
using namespace std;
#define int long long
int xy[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int nx,ny,ex,ey,n,m,a,b,mk[100010][100010],h[100010][100010];
struct node{
int x,y,t;
};
queue<node> q;
void bfs(){
while(!q.empty()){
node x=q.front();q.pop();
for(int i=0;i<4;i++){
int xx=x.x+xy[i][0],yy=x.y+xy[i][1];
if(xx<1||yy<1||xx>n||yy>m||mk[xx][yy]) continue;
mk[xx][yy]=1;
h[xx][yy]=x.t+1;
q.push((node){xx,yy,x.t+1});
}
}
return;
}
signed main(){
cin>>n>>m>>a>>b;
for(int i=1;i<=a;i++){
cin>>ex>>ey;
mk[ex][ey]=1;
q.push((node){ex,ey,0});
}
bfs();
for(int i=1;i<=b;i++){
cin>>nx>>ny;
cout<<h[nx][ny]<<"\n";
}
return 0;
}
本地没问题,可一提交就CE