Submission #1224618

#TimeUsernameProblemLanguageResultExecution timeMemory
1224618asli_bgCircle Passing (EGOI24_circlepassing)C++20
14 / 100
17 ms584 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define fi first #define se second #define pb push_back #define sp <<' '<< #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define DEBUG(x) cout<<#x sp x<<endl; #define mid (l+r)/2 typedef vector<int> vi; typedef pair<int,int> pii; typedef vector<pii> vii; typedef vector<bool> vb; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0); int n,m,q; cin>>n>>m>>q; vi a(m); set<int> s1; FOR(i,m){ cin>>a[i]; s1.insert(a[i]); s1.insert(a[i]+n); } while(q--){ int x,y; cin>>x>>y; if(x>y) swap(x,y); //x küçük olan, y büyük olan int ans=min(y-x,2*n-(y-x)); FOR(i,2){ if(s1.count(x)){ int deg=1; deg+=min(abs(x+n-y),2*n-abs(x+n-y)); ans=min(ans,deg); } else{ auto it=s1.upper_bound(x); if(it!=s1.end()){ int deg=1; deg+=min(abs(*it-x),2*n-abs(*it-x)); deg+=min(abs(*it+n-y),2*n-abs(*it+n-y)); ans=min(ans,deg); } if(it!=s1.begin()){ it--; int deg=1; deg+=min(abs(*it-x),2*n-abs(*it-x)); deg+=min(abs(*it+n-y),2*n-abs(*it+n-y)); ans=min(ans,deg); } } swap(x,y); } cout<<ans<<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...