fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const long long MaxN = 1e6 +5, INF = 1e18;
  4. long long n, a[MaxN], dp[MaxN];
  5. int main()
  6. {
  7. ios_base::sync_with_stdio(0);
  8. cin.tie(0);
  9. cin >> n;
  10. for (long long i=1; i<=n; i++)
  11. {
  12. cin >> a[i];
  13. }
  14. for (long long i=1; i<=n; i++)
  15. {
  16. dp[i]=INF;
  17. }
  18. for (long long i=1; i<=n; i++)
  19. {
  20. long long pos= lower_bound(dp+1,dp+n+1,a[i])-dp;
  21. dp[pos]=a[i];
  22. }
  23. for (long long i=n; i>=1; i--)
  24. {
  25. if(dp[i]<INF)
  26. {
  27. cout << i;
  28. return 0;
  29. }
  30. }
  31. }
  32.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty