#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MOD 998244353
void solve(){
ll n , m , q, x, y;
cin >> n >> m >> q;
vector<ll> k(2 * m);
for(int i = 0; i < m ; i++){
cin >> k[i];
k[i + m] = k[i] + n;
}
sort(k.begin(), k.end());
for(int i = 0; i < q; i++){
cin >> x >> y;
ll ans = min(abs(y - x),2 * n - abs(y - x));
ll n1 = lower_bound(k.begin(), k.end(), x) - k.begin();
if(n1 == 2 * m){
n1 = 0;
}
ll xx = k[n1] + n;
if(xx >= 2 * n){
xx = k[n1] - n;
}
ans = min(ans, min(abs(y - xx) + min(abs(k[n1] - x), 2 * n - abs(k[n1] - x)) + 1,2 * n - abs(y - xx) + min(abs(k[n1] - x), 2 * n - abs(k[n1] - x)) + 1));
n1--;
if(n1 == -1){
n1 = 2 * m - 1;
}
xx = k[n1] + n;
if(xx >= 2 * n){
xx = k[n1] - n;
}
ans = min(ans, min(abs(y - xx) + min(abs(k[n1] - x), 2 * n - abs(k[n1] - x)) + 1,2 * n - abs(y - xx) + min(abs(k[n1] - x), 2 * n - abs(k[n1] - x)) + 1));
cout << ans << '\n';
}
}
int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int tests = 1;
// cin >> tests;
for(int i = 1; i <= tests; i ++)
solve();
}
# | 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... |