제출 #849863

#제출 시각아이디문제언어결과실행 시간메모리
849863Ahmed57Event Hopping (BOI22_events)C++17
10 / 100
1551 ms34124 KiB
#include <bits/stdc++.h> using namespace std; vector<int> adj[100001]; signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,q; cin>>n>>q; vector<pair<int,int>> v; for(int i = 0;i<n;i++){ int a,b;cin>>a>>b; v.push_back({a,b}); } for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ if(i!=j){ if(v[j].first<=v[i].second&&v[i].second<=v[j].second){ adj[i].push_back(j); } } } } vector<pair<int,int>> qu[n]; for(int i = 0;i<q;i++){ int a,b;cin>>a>>b; a--;b--; qu[a].push_back({b,i}); } int ans[q] = {0}; int cost[n] = {0}; for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ cost[j] = 1e9;; } queue<int> q;q.push(i); cost[i] = 0; while(!q.empty()){ int x = q.front();q.pop(); for(auto j:adj[x]){ if(cost[j]==1e9){ cost[j] = cost[x]+1; q.push(j); } } } for(auto j:qu[i]){ ans[j.second] = cost[j.first]; } } for(int i = 0;i<q;i++){ if(ans[i]==1e9)cout<<"impossible\n"; else cout<<ans[i]<<"\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...