Submission #701327

#TimeUsernameProblemLanguageResultExecution timeMemory
701327angelo_torresEvent Hopping (BOI22_events)C++17
10 / 100
1572 ms32836 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n,q,s[N],e[N],d[N]; bool o[N]; vector<int> g[N]; void bfs(int v){ for(int i = 1; i <= n; ++i) d[i] = N, o[i] = 0; d[v] = 0; queue<int> q; q.push(v); while(!q.empty()){ int r = q.front(); q.pop(); for(auto u : g[r]){ if(!o[u]){ o[u] = 1, d[u] = d[r]+1; q.push(u); } } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> q; for(int i = 1; i <= n; ++i) cin >> s[i] >> e[i]; if(n <= 5000){ for(int i = 1; i <= n; ++i){ for(int j = 1; j <= n; ++j){ if(i == j) continue; if(s[j] <= e[i] && e[i] <= e[j]){ // cout << i << " " << j << "\n"; g[i].push_back(j); } } } while(q--){ int w,z; cin >> w >> z; bfs(w); if(d[z] == N){ cout << "impossible\n"; }else{ cout << d[z] << "\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...