leoanjos

Movie Festival

Nov 30th, 2022
1,228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define llong long long int
  6.  
  7. int n;
  8. vector<pair<int, int>> movies;
  9. vector<int> memo;
  10.  
  11. int watch(int i = 0) {
  12.     if (i >= n) return 0;
  13.  
  14.     int &ans = memo[i];
  15.     if (~ans) return ans;
  16.  
  17.     ans = watch(i + 1);
  18.  
  19.     auto [a, b] = movies[i];
  20.     auto it = lower_bound(movies.begin(), movies.end(), make_pair(b, 0));
  21.  
  22.     return ans = max(ans, watch(it - movies.begin()) + 1);
  23. }
  24.  
  25. int main() {
  26.     ios_base::sync_with_stdio(false);
  27.     cin.tie(NULL);
  28.  
  29.     cin >> n;
  30.  
  31.     movies.resize(n);
  32.     for (int i = 0; i < n; i++) {
  33.         int a, b;
  34.         cin >> a >> b;
  35.         movies[i] = make_pair(a, b);
  36.     }
  37.  
  38.     sort(movies.begin(), movies.end());
  39.  
  40.     memo.assign(n + 5, -1);
  41.  
  42.     int ans = watch();
  43.     cout << ans << "\n";
  44. }
Advertisement
Add Comment
Please, Sign In to add comment