제출 #1166774

#제출 시각아이디문제언어결과실행 시간메모리
1166774hamzabcCircle Passing (EGOI24_circlepassing)C++20
100 / 100
294 ms47496 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define mod 1000000007 #define sp << " " << #define endl << '\n' int N, K, Q; int round(int a){ return min(a, N * 2 - a); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> K >> Q; set<int> friends; for (int i = 0; i < K; i++){ int k; cin >> k; friends.insert(k); friends.insert(k + N); } while (Q--){ int a, b; cin >> a >> b; int l, r; set<int>::iterator k = friends.lower_bound(a), k2; if (k == friends.begin()){ k2 = prev(friends.end()); }else{ k2 = prev(k); } if (k == friends.end()){ k = friends.begin(); } l = round(abs(a - *k)) + round(abs(b - (*k + N) % (2 * N))); r = round(abs(a - *k2)) + round(abs(b - (*k2 + N) % (2 * N))); cout << min(round(abs(b - a)), min(l, r) + 1) endl; } }
#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...