Submission #714278

#TimeUsernameProblemLanguageResultExecution timeMemory
714278vjudge1Event Hopping (BOI22_events)C++17
0 / 100
1589 ms3148 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<bool> visited; int dfs(int node, int target){ if(node == target) return 0; visited[node] = 1; int ans = oo; for(int to:g[node]){ if(visited[to]) continue; ans = min(ans, dfs(to, target) + 1); } visited[node] = 0; return ans; } 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; } if(n > 1000 || q > 100){ while(q--){ int i, j; cin >> i >> j; if(i == j){ cout << 0 << '\n'; } else if(v[i].second <= v[j].second && v[i].second >= v[j].first){ cout << 1 << '\n'; } else{ cout << "impossible\n"; } } return 0; } 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--){ int u, v; cin >> u >> v; int ans = dfs(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...