제출 #1151474

#제출 시각아이디문제언어결과실행 시간메모리
1151474Jawad_Akbar_JJCircle Passing (EGOI24_circlepassing)C++20
100 / 100
389 ms47536 KiB
#include <iostream> #include <set> using namespace std; int n, m, q; int dist(int x, int y){ return min(abs(x - y), n + n - abs(x - y)); } int main(){ cin>>n>>m>>q; set<int> st; for (int i=1, x;i<=m;i++) cin>>x, st.insert(x), st.insert(x + n); for (int i=1, x, y, tn = n + n;i<=q;i++){ cin>>x>>y; int Mn = dist(x, y); auto u = st.upper_bound(x); if (u == st.end()) u = st.begin(); Mn = min(Mn, dist(x, *u) + 1 + dist(y, (*u + n) % (n + n))); u = st.upper_bound(x); if (u == st.begin()) u = st.end(); u = prev(u); Mn = min(Mn, dist(x, *u) + 1 + dist(y, (*u + n) % (n + n))); cout<<Mn<<'\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...