/*
بسم الله الرحمن الرحيم
Author:
(:Muhammad Aneeq:)
*/
#include <iostream>
#include <algorithm>
#warning check the output
using namespace std;
int n,m,q;
int dis(int x,int y)
{
return min(abs(x-y),2*n-abs(x-y));
}
inline void solve()
{
cin>>n>>m>>q;
m*=2;
int k[m]={};
for (int i=0;i<m;i+=2)
{
int x;
cin>>x;
k[i]=x;
k[i+1]=x+n;
}
sort(k,k+m);
while (q--)
{
int x,y;
cin>>x>>y;
int ind=lower_bound(k,k+m,x)-k;
int ans=dis(x,y);
ind%=m;
ans=min(ans,dis(x,(k[ind])%(2*n))+dis((k[ind]+n)%(2*n),y)+1);
ind--;
ind=(ind+m)%m;
ans=min(ans,dis(x,(k[ind]+n)%(2*n))+dis((k[ind]+n)%(2*n),y)+1);
cout<<ans<<endl;
}
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}
Compilation message (stderr)
Main.cpp:9:2: warning: #warning check the output [-Wcpp]
9 | #warning check the output
| ^~~~~~~
# | 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... |