Submission #1147307

#TimeUsernameProblemLanguageResultExecution timeMemory
1147307samiaCircle Passing (EGOI24_circlepassing)C++20
20 / 100
2110 ms434452 KiB
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main() {
 
int n,m,q;
cin>>n>>m>>q;
int bestie;
int b;
map<int,int>p;
for(int so=0;so<=2*n;so++){p[so]=-1;}
for(int so=0;so<m;so++){
    cin>>bestie;
    b=(bestie+n)%(2*n);
  p[bestie]=b;
   p[b]=bestie;

}



int x,y;

int ans=0;
while(q--){
  cin>>x>>y;
ans=min(abs(x-y),(2*n)-abs(x-y));

int v=(x-((n+1)/2));
//cout<<v<<endl;
if(v<0){v=(2*n)+v;}
//cout<<v<<endl;
for(int so=v;so<=v+n;so++){
   int  ro=(so%(2*n));
    if(p[ro]!=-1){
   //     cout<<min((2*n)-abs(p[ro]-y),abs(p[ro]-y))+1+min((2*n)-abs(x-ro),abs(ro-x))<<" "<<ro<<endl;
 ans=min(ans,min((2*n)-abs(p[ro]-y),abs(p[ro]-y))+1+min((2*n)-abs(x-ro),abs(ro-x)));
    }


}
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...