求调
查看原帖
求调
959024
CQ天神楼主2024/7/16 15:52
#include <bits/stdc++.h>
using namespace std;
int i=1,n=0,m=0,j,k,x,maxx,a[1000005],b[1000005],h[1000005];
int main(){
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(h,0,sizeof(h));
	while(cin>>a[i]){
		maxx=0;
		for(int j=1;j<=i-1;j++){
			if(a[j]>=a[i]){
				if(b[j]>maxx){
					maxx=b[j];
				}
			}
		}
		b[i]=maxx+1;
		if(b[i]>m) m=b[i];
		x=0;
		for(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<<endl;
	return 0;
}
2024/7/16 15:52
加载中...