Submission #1000388

#TimeUsernameProblemLanguageResultExecution timeMemory
1000388pccEvent Hopping (BOI22_events)C++17
10 / 100
71 ms4572 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> const int mxn = 1010; pii arr[mxn]; vector<int> paths[mxn]; int N,Q; int dist[mxn]; queue<int> q; void BFS(int s){ fill(dist,dist+mxn,mxn); q.push(s); dist[s] = 0; while(!q.empty()){ auto now = q.front(); q.pop(); for(auto nxt:paths[now]){ if(dist[nxt]>dist[now]+1)dist[nxt] = dist[now]+1,q.push(nxt); } } return; } int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>N>>Q; for(int i = 1;i<=N;i++){ cin>>arr[i].fs>>arr[i].sc; } for(int i = 1;i<=N;i++){ for(int j = 1;j<=N;j++){ if(i == j)continue; if(arr[i].fs<=arr[j].sc&&arr[j].sc<=arr[i].sc)paths[j].push_back(i); } } while(Q--){ int s,t; cin>>s>>t; BFS(s); if(dist[t]>=mxn)cout<<"impossible\n"; else cout<<dist[t]<<'\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...