Submission #1246478

#TimeUsernameProblemLanguageResultExecution timeMemory
1246478svtkEvent Hopping (BOI22_events)C++20
10 / 100
1596 ms1092 KiB
#include <iostream> #include <algorithm> #include <vector> #include <set> #include <queue> using namespace std; using pii = pair<int, int>; using pipii = pair<int, pii>; using ppiii = pair<pii, int>; const int N = 100'000; const int Q = 100'000; int n, q; pii events[N]; int ans[Q]; int pos(int s, int e){ return events[s].second >= events[e].first and events[s].second <= events[e].second; } int main(){ cin >> n >> q; for(int i=0; i<n; i++){ cin >> events[i].first >> events[i].second; } for(int qi=0; qi<q; qi++){ int s, e; cin >> s >> e; s--; e--; int count = 0; while(s!=e){ int best = s; for(int i=0; i<n; i++){ if(pos(s, i) and events[i].second <= events[e].second){ if(i==e or events[i].second > events[best].second){ best = i; } } } if(best==s){ count = -1; break; } else { count++; s = best; } } ans[qi] = count; } for(int i=0; i<q; i++){ if(ans[i]==-1) cout << "impossible\n"; else cout << ans[i] << '\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...