提交时间:2023-11-25 09:35:56
运行 ID: 111979
#include<bits/stdc++.h> using namespace std; int n,k,a[111111],sid,ans,dp[1001],pre[111111]; int print(int x) { if(x==0) return 0; print(pre[x]); cout<<a[x]<<" "; } int main() { while(~scanf("%d",a+n)) n++; n--; for(int i=1;i<=n;i++) { int l=0;k=0; for(int j=1;j<i;j++) if((a[j]<=a[i])&&l<dp[j]) { l=dp[j]; k=j; } dp[i]=l+1;pre[i]=k; if(dp[i]>ans) { ans=dp[i]; sid=i; } } cout<<"max="<<ans<<endl; print(sid); }