#include <bits/stdc++.h>
using namespace std;
#define append push_back
#define int long long
const int N=2e5+10,LG=21;
int mod=998244353;
void solve(int tst){
int n,m,q;
cin>>n>>m>>q;
set<int>s;
for(int i=0;i<m;i++){
int x;
cin>>x;
s.insert(x);
s.insert(x+n);
}
while(q--){
int a,b;
cin>>a>>b;
int md=abs(a-b);
md=min(md,2*n-md);
int x=0;
if(a<*s.begin()){
x=*--s.end();
}
else x=*--s.upper_bound(a);
int y=(x+n)%(2*n);
md=min({md,min(abs(a-x),2*n-abs(a-x))+1+min(abs(b-y),2*n-abs(b-y))});
if(a>=*--s.end()){
x=*s.begin();
}
else x=*s.upper_bound(a);
y=(x+n)%(2*n);
md=min({md,min(abs(a-x),2*n-abs(a-x))+1+min(abs(b-y),2*n-abs(b-y))});
cout<<md<<endl;
}
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
// cin >> t;
for(int i=1;i<=t;i++)
solve(i);
}
# | 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... |