// Suzune, if you want to ascend to a higher class, struggle with every ounce of strenght you have.
#include <bits/stdc++.h>
using namespace std;
int n,m,q,x,y,z,odp; set<int> s;
int dist(int a, int b) {
if (a < b)
swap(a,b);
return min(a-b,2*n-a+b);
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> m >> q;
for (int i = 0; i < m; i++)
cin >> x, s.insert(x), s.insert(x+n);
for (int i = 0; i < q; i++) {
cin >> x >> y, odp = dist(x,y);
if (*s.rbegin() >= x)
z = *s.lower_bound(x);
else
z = *s.begin();
odp = min(odp,dist(x,z)+1+dist(y,((z < n) ? z+n : z-n)));
if (*s.begin() <= x)
z = *prev(s.upper_bound(x));
else
z = *s.rbegin();
odp = min(odp,dist(x,z)+1+dist(y,((z < n) ? z+n : z-n)));
cout << odp << 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... |