#include <iostream>
using namespace std;
#include <vector>
int main() {
    int num;
    cin >> num;
    vector<int> nums(num,0);
    vector<int> dp(num,1);
    int res = 1;
    for(int i = 0; i < num ;i++){
        cin >> nums[i];
    }
    for(int i = 1; i < num; i++){
        for(int j = 0; j < i ;j++){
            if(nums[i] > nums[j]){
                dp[i] = max(dp[i],dp[j]+1);
            }
            if(dp[i]>res){
                res = dp[i];
            }
        }

    }
    cout << res << endl;
}

最长递增子序列问题