Submission #1170877

#TimeUsernameProblemLanguageResultExecution timeMemory
1170877uranhishigCircle Passing (EGOI24_circlepassing)C++20
0 / 100
23 ms5188 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define int long long #define ff first #define ss second #define all(a) (a).begin(),(a).end() #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i <= (n); i++) queue<pair<int, int>> q; const int mx = 2e5 + 9; vector<vector<int>> v(mx); vector<bool> vis(mx); void bfs(int s, int e){ q.push({s,0}); vis[s]=1; while(!q.empty()){ int x = q.front().first; int w = q.front().second; q.pop(); if (x==e) { cout<<w<<endl; return; } for (auto y:v[x]) { if (!vis[y]) { vis[y]=1; q.push({y,w+1}); } } } cout<<'0'<< endl; } signed main() { int n, m, t; cin >> n >> m >> t; for (int i = 0; i < n; i++) { vis[i] = false; } for (int i = 0; i < m; i++) { int p; cin >> p; v[p].push_back(n + p); v[n + p].push_back(p); } v[2 * n].push_back(1); v[1].push_back(2 * n); for (int i = 1; i < 2 * n; i++) { v[i].push_back(i + 1); v[i + 1].push_back(i); } while (t--) { fill(vis.begin(), vis.end(), false); int x, y; cin >> x >> y; bfs(x, y); } 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...