MAGCARI

Bus Station

May 1st, 2023
958
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. /*
  2.     Task        : _example
  3.     Author      : Phumipat C. [MAGCARI]
  4.     Language    : C++
  5. */
  6. #include<bits/stdc++.h>
  7. using namespace std;
  8. struct A{
  9.     int st,en;
  10.     bool operator < (const A&o) const{
  11.         if(st != o.st)  return st < o.st;
  12.         else            return en < o.en;
  13.     }
  14. };
  15. A a[100010];
  16. int main(){
  17.     int n,m,q;
  18.     cin >> n >> m >> q;
  19.     for(int i=1;i<=n;i++){
  20.         cin >> a[i].st >> a[i].en;
  21.     }
  22.     sort(a+1,a+n+1);
  23.     while(q--){
  24.         int startPoint,endPoint;
  25.         cin >> startPoint >> endPoint;
  26.         int now = 1,mx = 0;
  27.         while(now<=n && a[now].st <= startPoint){
  28.             mx = max(mx,a[now].en);
  29.             now++;
  30.         }
  31.         if(mx < startPoint){
  32.             cout << "-1\n";
  33.             continue;
  34.         }
  35.         int cnt = 1;
  36.         while(now <= n && a[now].st <= mx && mx < endPoint){
  37.             int newMx = mx;
  38.             while(now <= n && a[now].st <= mx && newMx < endPoint){
  39.                 newMx = max(newMx,a[now].en);
  40.                 now++;
  41.             }
  42.             mx = newMx;
  43.             cnt++;
  44.         }
  45.         if(mx >= endPoint)
  46.             cout << cnt << '\n';
  47.         else
  48.             cout << "-1\n";
  49.     }
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment