제출 #877421

#제출 시각아이디문제언어결과실행 시간메모리
877421vjudge1Event Hopping (BOI22_events)C++17
10 / 100
1553 ms30584 KiB
///#include "art.h" #include <bits/stdc++.h> using namespace std; const long long maxn = 1e5; const long long mod = 1e9+7; const int logn=30; int main() { ios::sync_with_stdio(false); int n,q; cin>>n>>q; vector<pair<int,int>>v; for(int i=0;i<n;i++) { int x,y; cin>>x>>y; v.push_back({x,y}); } vector<int>g[n]; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(j==i)continue; if(v[j].first<=v[i].second) { if(v[j].second>=v[i].second) { g[i].push_back(j); } } } } while(q--) { int ans=-1; int l,r; cin>>l>>r; l--;r--; bool vis[n]; memset(vis,0,sizeof vis); queue<int>Q; Q.push(l); Q.push(0); vis[l]=true; while(!Q.empty()) { int teme=Q.front(); Q.pop(); int k=Q.front();Q.pop(); if(teme==r) { ans=k; break; } for(auto ax:g[teme]) { if(vis[ax])continue; Q.push(ax); Q.push(k+1); vis[ax]=true; } } if(ans==-1) { cout<<"impossible"<<endl; } else { cout<<ans<<endl; } } return 0; } /* void solve(int n) { if(n<=6) { vector<int>v; for(int i=1;i<=n;i++) { v.push_back(i); } do { int kol=publish(v); if(kol==0) { answer(v); } }while(next_permutation(v.begin(),v.end())); } /// publish(order); /// answer(order); } */
#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...