#include <bits/stdc++.h>
using namespace std;
const int N=6e5;
int n,m,q;
vector<int> k;
int path(int u,int v){
if(u>v){
swap(u,v);
}
return min(v-u,u+2*n-v);
}
int pat(int u,int v,int i){
if(i>=m || i<0){
return 1e9;
}
return min(1+path(u,k[i])+path(n+k[i],v),1+path(u,n+k[i])+path(v,k[i]));
}
int main()
{
cin>>n>>m>>q;
k.resize(m);
for(int i=0;i<m;++i){
cin>>k[i];
}
sort(k.begin(),k.end());
while(q--){
int u,v;
cin>>u>>v;
if(u>v){
swap(u,v);
}
int answ=path(u,v);
answ=min(answ,pat(u,v,0));
answ=min(answ,pat(u,v,m-1));
int id=lower_bound(k.begin(),k.end(),u)-k.begin();
answ=min(answ,pat(u,v,id));
answ=min(answ,pat(u,v,id-1));
cout<<answ<<'\n';
}
return 0;
}
# | 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... |