제출 #1151464

#제출 시각아이디문제언어결과실행 시간메모리
1151464MuhammadSaramCircle Passing (EGOI24_circlepassing)C++20
100 / 100
166 ms4328 KiB
#include <bits/stdc++.h> using namespace std; #define all(v) v.begin(), v.end() #define dis(x,y) min(abs(x-y),2*n-abs(x-y)) int main() { int n,m,q,x; cin>>n>>m>>q; vector<int> v(2*m); for (int i=0;i<m;i++) cin>>v[i]; for (int i=m;i<2*m;i++) v[i]=v[i-m]+n; while (q--) { int x,y; cin>>x>>y; int ans=dis(x,y); int nx=lower_bound(all(v),x)-begin(v),pr=nx; if (nx==v.size()) nx=0; nx=v[nx]; if (!pr) pr=v.size(); pr=v[pr-1]; ans=min(ans,dis(x,nx)+dis((nx+n)%(2*n),y)+1); ans=min(ans,dis(x,pr)+dis((pr+n)%(2*n),y)+1); cout<<ans<<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...