#include <bits/stdc++.h>
using namespace std;
#define all(v) v.begin(), v.end()
#define dis(x,y) min(abs(x-y),2*n-abs(x-y))
int main()
{
int n,m,q,x;
cin>>n>>m>>q;
vector<int> v(2*m);
for (int i=0;i<m;i++)
cin>>v[i];
for (int i=m;i<2*m;i++)
v[i]=v[i-m]+n;
while (q--)
{
int x,y;
cin>>x>>y;
int ans=dis(x,y);
int nx=lower_bound(all(v),x)-begin(v),pr=nx;
if (nx==v.size())
nx=0;
nx=v[nx];
if (!pr)
pr=v.size();
pr=v[pr-1];
ans=min(ans,dis(x,nx)+dis((nx+n)%(2*n),y)+1);
ans=min(ans,dis(x,pr)+dis((pr+n)%(2*n),y)+1);
cout<<ans<<endl;
}
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... |