就对了第一个点,求救
查看原帖
就对了第一个点,求救
181715
gjh303987897楼主2021/10/17 17:14
#include<iostream>
#include<cstdio>
#define maxn 100001
using namespace std;
int q,n;
int a[maxn],b[maxn],h[maxn];
void in(){
	while(cin>>q){
		n++;
		a[n]=q;
	}
}
int main()
{
	in(); int maxx=0; int ans_1=0,ans_2=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n-1;j++){
			if(a[j]>=a[i]){
				if(b[j]>maxx) maxx=b[j];
			}
		}
		b[i]=maxx+1;
		if(b[i]>ans_1) ans_1=b[i]; 
	}
	int x=0;
	for(int i=1;i<=n;i++){
		x=0;
		for(int j=1;j<=ans_2;j++){
			if(a[i]<=h[j]){
				if(x==0) x=j;
				else if(h[j]<h[x]) x=j;
			}
			if(x==0){
				ans_2++; x=n;
			}
			h[x]=a[i];
		}
	}
	cout<<ans_1<<endl<<ans_2;
	return 0;
}
2021/10/17 17:14
加载中...