Advertisement
mickypinata

TOI13: Orchid

Nov 21st, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.52 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 1e6;
  5.  
  6. int orchids[N + 10], lis[N + 10];
  7. int nOrchid;
  8.  
  9. int main(){
  10.  
  11.     scanf("%d", &nOrchid);
  12.     for(int i = 1; i <= nOrchid; ++i){
  13.         scanf("%d", &orchids[i]);
  14.     }
  15.  
  16.     lis[0] = -1e9;
  17.     int mxLen = 0;
  18.     for(int i = 1; i <= nOrchid; ++i){
  19.         int *ptr = upper_bound(lis, lis + mxLen + 1, orchids[i]);
  20.         *ptr = orchids[i];
  21.         mxLen = max(mxLen, (int)(ptr - lis));
  22.     }
  23.  
  24.     cout << nOrchid - mxLen;
  25.  
  26.     return 0;
  27. }
  28.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement