제출 #1347508

#제출 시각아이디문제언어결과실행 시간메모리
1347508julia_08Circle Passing (EGOI24_circlepassing)C++20
56 / 100
2094 ms4648 KiB
#include <bits/stdc++.h>
using namespace std;

int n;

int dist(int x, int y){
  if(x > y) swap(x, y);
  return min(y - x, 2 * n - (y - x));
}

int main(){
  cin.tie(0)->sync_with_stdio(0);

  int m, q; cin >> n >> m >> q;

  vector<int> s;
  
  while(m--){

    int k; cin >> k;
    
    s.push_back(k);
    s.push_back(k + n);
  
  }

  while(q--){
  
    int x, y; cin >> x >> y;

    int ans = dist(x, y);

    for(auto z : s){
      ans = min(ans, dist(x, z) + dist((z < n ? z + n : z - n), y) + 1);
    }

    cout << ans << "\n";

  }

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