fork download
  1. #include<bits/stdc++.h>
  2. #define f1(i, n) for(int i=1;i<=n;++i)
  3. #define f0(i, n) for(int i=0;i<n;++i)
  4. #define ull unsigned long long
  5. #define ll long long
  6. #define rev(a) reverse(a.begin(),a.end())
  7. #define all(x) x.begin(),x.end()
  8. #define so(A, n) sort(A+1, A+n+1)
  9. using namespace std;
  10. const int maxn = 1e6 + 1;
  11. const int N = 5e5 + 1;
  12. int A[30001], D[30001];
  13. int main()
  14. {
  15. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  16. int n;
  17. cin >> n;
  18. for (int i = 1; i <= n; ++i) {
  19. cin >> A[i];
  20. }
  21. int d = 0;
  22. for (int i = 1; i <= n; ++i) {
  23. int vt = lower_bound(D + 1, D + d + 1, A[i]) - D;
  24. if (vt > d) {
  25. ++d;
  26. D[d] = A[i];
  27. }
  28. else if (vt == d) {
  29. D[vt] = min(D[vt], A[i]);
  30. }
  31. }
  32. cout << d;
  33. }
  34.  
  35.  
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout
1