100分,求调
查看原帖
100分,求调
949751
cwxczjc楼主2025/1/19 08:56
#include<bits/stdc++.h> 
using namespace std;
int n,m,mx,mn,a[100006],b[100006],dp[100006];
int main()
{
	int i,j,k;
	while(cin>>a[n]) n++;
	for(i=0;i<n;i++) dp[i]=1;
	for(i=0;i<n;i++)
		for(j=0;j<i;j++)
			if(a[j]>=a[i]) dp[i]=max(dp[i],dp[j]+1);		
	for(i=0;i<n;i++) mx=max(dp[i],mx);
	cout<<mx<<endl;
	for(i=0;i<n;i++){
		mn=30000,k=0;
		for(j=1;j<=m;j++)
			if(b[j]>=a[i]&&b[j]-a[i]<mn) mn=b[j]-a[i],k=j;
		if(k==0) m++,b[m]=a[i];
		else b[k]=a[i];
	}
	cout<<m;
	return 0;
}
2025/1/19 08:56
加载中...