Submission #1168179

#TimeUsernameProblemLanguageResultExecution timeMemory
1168179SheepHeadsCircle Passing (EGOI24_circlepassing)C++20
14 / 100
7 ms584 KiB
#include <bits/stdc++.h> #include <functional> #define int long long using namespace std; int n, m, q; const int INF = 1e9+7; // vector<vector<int>> adjList; // vector<int> dist; // bitset<500000000> bf; // void bfs(int node){ // dist.at(node) = 0; // queue<int> que; // que.push(node); // while(!que.empty()){ // int cur = que.front(); // que.pop(); // for(auto itr : adjList.at(cur)){ // if(dist.at(itr) == INF){ // dist.at(itr) = dist.at(cur)+1; // que.push(itr); // } // } // } // } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m>>q; // adjList = vector<vector<int>>(2*n); // dist = vector<int>(2*n, INF); int bf; for(int i = 0; i<m; i++){ cin>>bf; // adjList.at(x).push_back(x+n); // adjList.at(x+n).push_back(x); // bf[x] = 1; } // adjList.at(0).push_back(2*n-1); // adjList.at(0).push_back(1); // adjList.at(2*n-1).push_back(0); // adjList.at(2*n-1).push_back(2*n-2); // for(int i = 1; i<2*n-1; i++){ // adjList.at(i).push_back(i+1); // adjList.at(i).push_back(i-1); // } // bfs(0); while(q--){ int x, y; cin>>x>>y; int dist1 = min(abs(y-bf), bf+2*n-y); int dist2 = min(abs(y-(bf+n)), 2*n-(bf+n)+y); if(x < n){ cout << min(dist1, dist2+1) << "\n"; }else{ cout << min(dist1+1, dist2) << "\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...