大佬求解
查看原帖
大佬求解
1593570
封禁用户楼主2024/12/19 12:57
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],d[N],c[N],k;
int main(){ 
	int n=1;
	while(cin>>a[n]){
		d[n]=1;
		n++;
	}
	int ma=0;
	for(int i=1;i<n;i++){
		for(int j=1;j<i;j++){
			if(a[i]<=a[j]){
				d[i]=max(d[i],d[j]+1);
			}
		}
		ma=max(ma,d[i]);
	}
	cout<<ma<<endl;
	bool f;
	for(int i=1;i<=n;i++){
		f=false;
		for(int j=0;j<k;j++){
			if(c[j]>=a[i]){
				c[j]=a[i];
				f=true;
				break;
			}
		}
		if(f==false){
			c[k]=a[i];
			k++;
		}
	}
	cout<<k;
	return 0;
}
2024/12/19 12:57
加载中...