Submission #721792

#TimeUsernameProblemLanguageResultExecution timeMemory
721792Mr_HusanboyEvent Hopping (BOI22_events)C++17
10 / 100
1582 ms226900 KiB
#include<bits/stdc++.h> using namespace std; #define all(a) (a).begin(), (a).end() template<typename T> int len(T &a){ return a.size(); } using ll = long long; const int inf = 1e9; const ll infl = 1e18; #define ff first #define ss second void solve(){ int n, q; cin >> n >> q; vector<pair<int,int>> e(n); map<int,int> mp; for(int i = 0; i < n; i ++){ cin >> e[i].ff >> e[i].ss; mp[e[i].ff] = 1; mp[e[i].ss] = 1; } map<int,int> id; for(auto [a,b] : mp){ id[a] = len(id); } vector<vector<int>> g(n); for(int i = 0; i < n; i ++){ for(int j = 0;j < n; j ++){ if(i == j) continue; if(e[i].ss >= e[j].ff && e[i].ss <= e[j].ss){ //cout << i + 1 << ' ' << j + 1 << endl; g[i].push_back(j); } } } vector dis(n, vector(n, 1e9)); auto bfs = [&](int i){ queue<int> q; vector<int> used(n); q.push(i); dis[i][i] = 0; used[i] = 1; while(!q.empty()){ int t = q.front(); q.pop(); for(auto u : g[t]){ if(used[u]) continue; used[u] = 1; dis[i][u] = dis[i][t] + 1; q.push(u); } } }; for(int i = 0; i < n; i ++){ bfs(i); } while(q --){ int a, b;cin >> a >> b; a --; b --; if(dis[a][b] == inf){ cout << "impossible\n"; }else cout << dis[a][b] << '\n'; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int testcases = 1; //cin >> testcases; while(testcases --){ solve(); if(testcases) cout << '\n'; #ifdef LOCAL else cout << '\n'; cout << "__________________" << endl; #endif } 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...