#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
// freopen("input.in","r",stdin);
int N,M,Q; cin>>N>>M>>Q;
int f[M];
for(int i=0;i<M;i++){
cin>>f[i];
}
int x,y;
int d,w,dxk,dyk,dxk1,dyk1;
for(int i=0;i<Q;i++){
cin>>x>>y;
d=x-y;
if(d<0){
d*=-1;
}
if(d>N){
d=(2*N)-d;
}
for(int j=0;j<M;j++){
dxk=x-f[j];
if(dxk<0){
dxk*=-1;
}
if(dxk>N){
dxk=(2*N)-dxk;
}
dyk1=y-(f[j]+N);
if(dyk1<0){
dyk1*=-1;
}
if(dyk1>N){
dyk1=(2*N)-dyk1;
}
if(dyk1+dxk+1<d){
d=dyk1+dxk+1;
}
dyk=y-f[j];
if(dyk<0){
dyk*=-1;
}
if(dyk>N){
dyk=(2*N)-dyk;
}
dxk1=x-(f[j]+N);
if(dxk1<0){
dxk1*=-1;
}
if(dxk1>N){
dxk1=(2*N)-dxk1;
}
if(dxk1+dyk+1<d){
d=dxk1+dyk+1;
}
}
cout<<d<<'\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |