提交时间:2024-03-30 14:24:16

运行 ID: 140314

#include<bits/stdc++.h> using namespace std; int a[30005],n=1,dp[50005]; int main(){ while(cin>>a[n]){ n++; } n-=1; for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(a[i]<a[j]){ dp[i]=max(dp[i],dp[j]+1); } } } int maxn=0; for(int i=1;i<=n;i++){ maxn=max(maxn,dp[i]); } cout<<maxn+1<<endl; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(a[j]<a[i]){ dp[i]=max(dp[i],dp[j]+1); } } } maxn=0; for(int i=1;i<=n;i++){ maxn=max(maxn,dp[i]); } cout<<maxn+1; return 0; }