#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main() {
int n,m,q;
cin>>n>>m>>q;
int bestie;
int b;
map<int,int>p;
for(int so=0;so<=2*n;so++){p[so]=-1;}
for(int so=0;so<m;so++){
cin>>bestie;
b=(bestie+n)%(2*n);
p[bestie]=b;
p[b]=bestie;
}
int x,y;
int ans=0;
while(q--){
cin>>x>>y;
ans=min(abs(x-y),(2*n)-abs(x-y));
int v=(x-((n+1)/2));
//cout<<v<<endl;
if(v<0){v=(2*n)+v;}
//cout<<v<<endl;
for(int so=v;so<=v+n;so++){
int ro=(so%(2*n));
if(p[ro]!=-1){
// cout<<min((2*n)-abs(p[ro]-y),abs(p[ro]-y))+1+min((2*n)-abs(x-ro),abs(ro-x))<<" "<<ro<<endl;
ans=min(ans,min((2*n)-abs(p[ro]-y),abs(p[ro]-y))+1+min((2*n)-abs(x-ro),abs(ro-x)));
}
}
cout<<ans<<endl;
}
}
# | 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... |