只拿了一百分,希望大佬们可以帮忙指点优化一下
#include<bits/stdc++.h>
using namespace std;
int n,a[100110],s,k,b[100110],f[100110],ans;
int main(){
int x;
while(cin>>x){
n++;
a[n]=x;
}
for(int i=1;i<=n;i++){
int m=0;
for(int j=1;j<=i-1;j++){
if(a[j]>=a[i]){
if(f[j]>m) m=f[j];
}
}
f[i]=m+1;
}
for(int i=1;i<=n;i++) ans=max(ans,f[i]);
cout<<ans<<endl;
for(int i=1;i<=n;i++){
int w=0;
for(int j=1;j<=k;j++){
if(b[j]>=a[i]){
w=j;
break;
}
}
if(w>0) b[w]=a[i];
else{
k++;
b[k]=a[i];
}
}
cout<<k;
return 0;
}