Submission #1099368

#TimeUsernameProblemLanguageResultExecution timeMemory
1099368mihaihvhCircle Passing (EGOI24_circlepassing)C++14
0 / 100
10 ms1116 KiB
#include <iostream> #include <set> #include <queue> #include <vector> using namespace std; set<int> v[2001]; vector<pair<int, int>> Q; int n, m, q; int M[1001]; void bf(int k, int l) { int viz[2001]{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[i]; } 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)); if (M[j] == i) { v[a].insert(b); v[b].insert(a); } } } 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...