Submission #1147527

#TimeUsernameProblemLanguageResultExecution timeMemory
1147527samiaCircle Passing (EGOI24_circlepassing)C++20
56 / 100
2099 ms89436 KiB
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
using ll = long long ;
int main() {
 
ll n,m,q;
cin>>n>>m>>q;
ll bestie=0;
ll b;
map<ll,ll>p;
map<ll,ll>s;
vector<int>v;

for(ll so=0;so<m;so++){
    cin>>bestie;
    b=(bestie+n)%(2*n);
 
        v.push_back(bestie);
  p[bestie]=b;
   p[b]=bestie;
s[bestie]=1;
    s[b]=1;
}


 

    ll x,y;
    ll ans=0;
    while(q--){
        cin>>x>>y;
       ans=min(abs(x-y),(2*n)-abs(x-y)); 
      for(int so=0;so<v.size();so++){
          
     ans=min(ans,min((2*n)-abs(x-v[so]),abs(x-v[so]))+1+min((2*n)-abs(y-p[v[so]]),abs(y-p[v[so]])));
    ans=min(ans,min((2*n)-abs(x-p[v[so]]),abs(x-p[v[so]]))+1+min((2*n)-abs(y-v[so]),abs(y-v[so])));
      }
      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...