Submission #600994

#TimeUsernameProblemLanguageResultExecution timeMemory
600994CSQ31Event Hopping (BOI22_events)C++17
10 / 100
1572 ms4104 KiB
#include <bits/stdc++.h> using namespace std; #define all(a) a.begin(),a.end() #define owo ios_base::sync_with_stdio(0);cin.tie(0); const int MAXN = 1e5+1; int s[MAXN],e[MAXN]; bool check(int x,int j){ //got edge i->j? return s[j] <= x && x <= e[j]; } int main() { owo int n,q; cin>>n>>q; vector<int>crd; for(int i=0;i<n;i++)cin>>s[i]>>e[i]; for(int i=0;i<n;i++){ crd.push_back(s[i]); crd.push_back(e[i]); } sort(all(crd)); crd.resize(unique(all(crd)) - crd.begin()); for(int i=0;i<n;i++){ s[i] = lower_bound(all(crd),s[i]) - crd.begin(); e[i] = lower_bound(all(crd),e[i]) - crd.begin(); } int m = crd.size(); //greedy : always jump to the rightmost guy with e < e[r] while(q--){ int l,r; cin>>l>>r; l--; r--; int ans = 0; if(l==r){ cout<<0<<'\n'; continue; } int i = e[l]; while(true){ if(check(i,r)){ ans++; break; } int k = i; for(int j=0;j<n;j++){ if(check(i,j) && e[j] <= e[r])k = max(e[j],k); } if(k==i){ ans=-1; break; } ans++; i = k; } if(ans==-1)cout<<"impossible"<<'\n'; else cout<<ans<<'\n'; } }

Compilation message (stderr)

events.cpp: In function 'int main()':
events.cpp:27:6: warning: unused variable 'm' [-Wunused-variable]
   27 |  int m = crd.size();
      |      ^
#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...