Submission #1147542

#TimeUsernameProblemLanguageResultExecution timeMemory
1147542orzdraiduwuCircle Passing (EGOI24_circlepassing)C++20
56 / 100
2094 ms5904 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

int n, m, q;
int dis(int x, int y) { return min(abs(x-y), 2*n - abs(x-y)); }
signed main() {
  cin >> n >> m >> q;
  vector<int> k(m);
  for(int i = 0 ; i < m ; i++) {
    cin >> k[i];
    k.push_back(k[i] + n);
  }

  sort(k.begin(), k.end());
  for(int i = 0 ; i < q ; i++) {
    int x, y; cin >> x >> y;
    int a = dis(x, y);
    for(int j = 0 ; j < k.size() ; j++) {
      a = min(a, dis(x, k[j]) + dis((k[j]+n)%(2*n), y) + 1);
    }
    
    cout << a << '\n';
  }
}
#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...