Submission #1172054

#TimeUsernameProblemLanguageResultExecution timeMemory
1172054yoav_sEvent Hopping (BOI22_events)C++20
10 / 100
1596 ms79300 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> v; typedef vector<v> vv; typedef vector<vv> vvv; typedef pair<ll, ll> p; typedef vector<p> vp; typedef vector<vp> vvp; typedef vector<vvp> vvvp; typedef pair<ll, p> tri; typedef vector<tri> vtri; typedef vector<vtri> vvtri; typedef vector<vvtri> vvvtri; typedef vector<bool> vb; typedef vector<vb> vvb; typedef vector<vvb> vvvb; #define f first #define s second #define pb push_back #define eb emplace_back #define all(v) (v).begin(),(v).end() const ll INF = 1e18; const ll mod = 1e9 + 7; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ll N, Q; cin >> N >> Q; vp events(N); for (ll i = 0; i < N; i++) cin >> events[i].f >> events[i].s; while (Q--) { ll s, e; cin >> s >> e; s--; e--; queue<p> bfs; bfs.emplace(s, 0); vb visited(N, false); bool done = false; while (!bfs.empty()) { auto top = bfs.front(); bfs.pop(); if (visited[top.f]) continue; visited[top.f] = true; if (top.f == e) { cout << top.s << "\n"; done = true; break; } for (ll i = 0; i < N; i++) { if (events[top.f].s >= events[i].f && events[top.f].s <= events[i].s) { bfs.emplace(i, top.s + 1); } } } if (!done) cout << "impossible\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...
#Verdict Execution timeMemoryGrader output
Fetching results...