_no0B

Untitled

Nov 7th, 2021
1,093
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define N ((int)6e4 + 5)
  4. #define MOD ((int)1e9 + 7)
  5. #define MAX ((int)1e9 + 7)
  6. #define MAXL ((ll)1e18 + 7)
  7. #define MAXP ((int)1e3 + 7)
  8. #define thr 1e-8
  9. #define pi acos(-1)  /// pi = acos ( -1 )
  10. #define fastio ios_base::sync_with_stdio(false),cin.tie(NULL)
  11. #define endl "\n"
  12.  
  13. using namespace std;
  14.  
  15.  
  16. int arr[N] , dpp[N], lastEle[N];
  17.  
  18. int binarySearch(int arr[] , int val)
  19. {
  20.     int lef = 0 , rig = n;
  21.     while(lef < rig){
  22.         int mid = (lef + rig + 1) >> 1;
  23.         if(arr[mid] < val) lef = mid;
  24.         else rig = mid-1;
  25.     }
  26.     return lef;
  27. }
  28.  
  29. int main(){
  30.     int n;
  31.     cin>>n;
  32.     for(int i = 1; i <= n ; i++){
  33.         cin>>arr[i];
  34.         lastEle[i] = MAX;
  35.     }
  36.     lastEle[0] = -MAX;
  37.     for(int i = 1 ; i <= n ; i++){
  38.         int len = binarySearch(lastEle , arr[i] , n);
  39.         lastEle[len+1] = min(lastEle[len+1] , arr[i]);
  40.         dpp[i] = len+1;
  41.     }
  42. }
  43.  
Advertisement
Add Comment
Please, Sign In to add comment