Submission #1099380

#TimeUsernameProblemLanguageResultExecution timeMemory
1099380mihaihvhCircle Passing (EGOI24_circlepassing)C++14
0 / 100
71 ms2396 KiB
#include <iostream> #include <set> #include <queue> #include <vector> using namespace std; set<int> v[20001]; vector<pair<int, int>> Q; int n, m, q; int M; void bf(int k, int l) { int viz[20001]{0}; queue<int> q; viz[k] = 1; q.push(k); while (!q.empty()) { for (auto m : v[q.front()]) { if (!viz[m]) { q.push(m); viz[m] = viz[q.front()] + 1; } } q.pop(); } cout << viz[l] - 1 << '\n'; } int main() { cin >> n >> m >> q; for (int i = 0; i < m; ++i) { cin >> M; v[M].insert(M+n); v[M+n].insert(M); } for (int i = 0; i < 2*n; ++i) { if (i == 0) v[i].insert(2*n-1); if (i == 2*n-1) v[i].insert(0); if (i < 2*n-1) v[i].insert(i+1); if (i > 0) v[i].insert(i-1); } for (int i = 0; i < q; ++i) { for (int j = 0; j < m; ++j) { int a, b; cin >> a >> b; Q.push_back(make_pair(a, b)); } } for (auto p : Q) { bf(p.first, p.second); } 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...