제출 #714299

#제출 시각아이디문제언어결과실행 시간메모리
714299vjudge1Event Hopping (BOI22_events)C++17
10 / 100
1588 ms30432 KiB
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> #define oo 1e9 using namespace std; vector<vector<int>> g; vector<int> visited; int bfs(int start, int target){ queue<pii> q; q.push({start, 0}); visited[start] = true; while(!q.empty()){ int node = q.front().first; int d = q.front().second; q.pop(); if(node == target) return d; for(int to:g[node]){ if(visited[to]) continue; q.push({to, d + 1}); visited[to] = true; } } return oo; } int main(){ int n, q; cin >> n >> q; vector<pii> v(n + 1); for (int i = 1; i <= n; i++) { cin >> v[i].first >> v[i].second; } visited.resize(n + 1, 0); g.resize(n + 1); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(i == j) continue; if(v[i].second <= v[j].second && v[i].second >= v[j].first){ g[i].emplace_back(j); } } } while(q--){ fill(visited.begin(), visited.end(), 0); int u, v; cin >> u >> v; int ans = bfs(u, v); if(ans == oo){ cout << "impossible\n"; } else{ cout << ans << '\n'; } } }
#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...