Submission #896434

#TimeUsernameProblemLanguageResultExecution timeMemory
896434Abdalaziz_AlshamiEvent Hopping (BOI22_events)C++17
0 / 100
1579 ms17736 KiB
#include<iostream> #include<set> #include<map> #include<utility> #define st first #define ed second #define int int64_t #define endl '\n' using namespace std; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,q; cin>>n>>q; pair<int,int>a[n+1]; map<int,int>pres; for(int i=1;i<=n;i++) { cin>>a[i].st>>a[i].ed; pres[a[i].st]; pres[a[i].ed]; } int d=1; for(auto &e:pres) e.ed=d,d++; set<int> m[d+10]; for(int i=1; i<=n;i++) { a[i].st=pres[a[i].st]; a[i].ed=pres[a[i].ed]; m[a[i].st].insert(-a[i].ed); } while(q--) { int u,v; cin>>u>>v; if(u==v) { cout<<0<<endl; continue;} int i=a[u].st,mx=a[u].ed,g1=a[v].st,g2=a[v].ed,p=-1,ans=0; bool f=false; while(i<=mx) { auto it=m[i].lower_bound(-g2); if(it!=m[i].end()) p=max(p,-*it); if(i==mx){ mx=p; ans++; if(mx==g2&&i>=g1) { f=true; break;} } i++; } if(f) cout<<ans<<endl; else cout<<"impossible"<<endl; } }
#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...