제출 #1151493

#제출 시각아이디문제언어결과실행 시간메모리
1151493AbdullahIshfaqCircle Passing (EGOI24_circlepassing)C++20
100 / 100
69 ms8276 KiB
#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 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...