제출 #1168148

#제출 시각아이디문제언어결과실행 시간메모리
1168148SheepHeadsCircle Passing (EGOI24_circlepassing)C++20
0 / 100
2 ms324 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n, m, q; const int INF = 1e9+7; vector<vector<int>> adjList; vector<int> dist; 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); for(int i = 0; i<m; i++){ int x; cin>>x; adjList.at(x).push_back(x+n); adjList.at(x+n).push_back(x); } 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; cout << dist.at(y) << "\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...