导弹拦截系统
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int find(int n, int dp[], int arr[]){
dp[0]=1;
int ans=1;
for(int i=1; i<n; ++i){
int mx=1; //以i为结尾的最长增字串长度为mx
for(int j=0; j<i; ++j){
if(arr[j]<arr[i]){ //else的情况mx不会变
mx=max(mx, dp[j]+1);
}
}
dp[i]=mx;
if(dp[i]>ans){
ans=dp[i];
}
}
return ans;
}
int main(){
int n=0;
int dp[1005], arr[1005];
while(cin >> n){
if(!n){
break;
}
memset(dp, 0, sizeof(dp));
memset(arr, 0, sizeof(arr));
for(int i=0; i<n; ++i){
cin >> arr[i];
}
cout << find(n, dp, arr) << endl;
}
return 0;
}