Submission #1246485

#TimeUsernameProblemLanguageResultExecution timeMemory
1246485adam17Event Hopping (BOI22_events)C++20
10 / 100
1596 ms30472 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct dint{ int a; int b; }; int N, Q, vzd; vector<dint> A; vector<int> ot; vector<int> ot2; vector<bool> uzavreno; vector<vector<int>> sousede; bool jde(int i, int j) { return ((A[j].a <= A[i].b) && (A[i].b <= A[j].b)); } int main() { cin >> N >> Q; A.resize(N); for (int i = 0; i < N; i++) { cin >> A[i].a >> A[i].b; } sousede.resize(N); for (int i = 0; i < N; i++) { sousede[i].resize(0); for (int j = 0; j < N; j++) { if (jde(i, j)) { sousede[i].push_back(j); } } } for (int q = 0; q < Q; q++) { int u, v; cin >> u >> v; u--; v--; uzavreno.resize(N); for (int i = 0; i < N; i++) { uzavreno[i] = false; } vzd = -1; ot.resize(0); ot2.resize(1); ot2[0] = u; uzavreno[u] = true; while (ot2.size() > 0) { ot.resize(ot2.size()); for (int i = 0; i < ot.size(); i++) { ot[i] = ot2[i]; } ot2.resize(0); vzd++; while (ot.size()) { int o = ot.back(); ot.pop_back(); if (o == v) { cout << vzd << endl; goto hotovo; } for (int s: sousede[o]) if (!(uzavreno[s])) { ot2.push_back(s); uzavreno[s] = true; } } } cout << "impossible\n"; hotovo:; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...