半江超时半江红 只拿8分玄关求助
查看原帖
半江超时半江红 只拿8分玄关求助
1141876
wzyc楼主2024/8/13 09:23
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n=0,i=0,j=0,maxn=0,ans=0;
	int a[100005][3]={};
	n++;
	while(cin>>a[n][1])
	{
		a[n][2]=1;
		n++;
	}
	n--;
	for(i=2;i<=n;i++)
	{
		maxn=0;
		for(j=1;j<=i-1;j++)
		{
			if(a[j][1]>a[i][1])
				maxn=max(maxn,a[j][2]);
		}
		a[i][2]+=maxn;
		ans=max(ans,a[i][2]);
	}
	cout<<ans<<'\n';
	int sys[100005]={0,a[1][1]},x=0,sysn=1;
	for(i=2;i<=n;i++)
	{
		x=upper_bound(sys+1,sys+sysn+1,a[i][1])-sys;
		if(x==sysn+1)
		{
			sysn++;
			sys[sysn]=a[i][1];
		}
		else
			sys[x]=a[i][1];
	}
	cout<<sysn;
}
2024/8/13 09:23
加载中...