求大佬改一下这个超时程序(由于我是蒟蒻所以不会改)
#include <iostream>
using namespace std;
int i=1,x,n,maxx,m,a[100100],b[101000],h[100100];
int main(){
while(cin>>a[i]){
maxx=0;
for(int j=1;j<=i-1;j++) if(a[j]>=a[i]&&b[j]>maxx) maxx=b[j];
b[i]=maxx+1;
if(b[i]>m) m=b[i];
x=0;
for(int k=1;k<=n;k++) {
if(h[k]>=a[i])
if(x==0) x=k;
else if(h[k]<h[x]) x=k;
}
if(x==0) n++,x=n;
h[x]=a[i],i++;
}
cout<<m<<endl<<n;
return 0;
}