제출 #1166028

#제출 시각아이디문제언어결과실행 시간메모리
1166028PwoCircle Passing (EGOI24_circlepassing)C++20
100 / 100
49 ms8624 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n, m, q; vector<int> v; int d(int x, int y) { return min(abs(y - x), min(2 * n + x - y, 2 * n - x + y)); } int32_t main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m >> q; for (int i = 0; i < m; i++) { int x; cin >> x; v.push_back(x); } sort(v.begin(), v.end()); for (int i = 0; i < m; i++) v.push_back(v[i] + n); while (q--) { int x, y; cin >> x >> y; int ans = d(x, y); int val = (x > v.back() ? v[0] : *lower_bound(v.begin(), v.end(), x)); ans = min(ans, d(x, val) + d((val + n) % (2 * n), y) + 1); val = (v[0] > x ? v.back() : *--upper_bound(v.begin(), v.end(), x)); ans = min(ans, d(x, val) + d((val + n) % (2 * n), y) + 1); cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...