Submission #1268405

#TimeUsernameProblemLanguageResultExecution timeMemory
1268405nekolieCircle Passing (EGOI24_circlepassing)C++20
100 / 100
333 ms47564 KiB
// 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 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...