提交时间:2024-03-30 14:30:20

运行 ID: 140334

include<bits/stdc++.h> using namespace std; const int N=110000; int w[N],f[N],p[N],ps=0,maxn=0,n; int main(){ while(cin>>w[++n]){ int s=1;bool k=0; f[n]=1; for(int i=1;i<=ps;i++){ if(p[i]>=w[n]&&(!k||(p[i]<p[s]&&k))){ k=1; s=i; } } if(k) p[s]=w[n]; else p[++ps]=w[n]; } for(int i=n-1;i>=1;i--){ for(int j=n;j>i;j--){ if(w[i]>=w[j])f[i]=max(f[i],f[j]+1); maxn=max(maxn,f[i]); } } cout<<maxn<<endl<<ps; }