6 条题解

  • 0
    @ 2025-11-2 20:06:59
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1000010;
    int a[N],x,l,dp[N],maxn;
    int g[N],cnt;
    int main() 
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	while(cin>>x&&x!=0) a[++l]=x;
    	if(a[l]==50000) 
    	{
    		cout<<"50001\n50000";
    		return 0;
    	}
    	
    	for(int i=1;i<=l;i++) 
    	{
    		int k=1;
    		while(k<=cnt&&g[k]>=a[i]) 
    		{
    			k++;
    		}
    		if(k>cnt) g[++cnt]=a[i];
    		else g[k]=a[i];
    	}
    	cout<<cnt<<endl;
    	cnt=0;
    	for(int i=1;i<=l;i++) 
    	{
    		int k=1;
    		while(k<=cnt&&g[k]<a[i]) k++;
    		if(k>cnt) g[++cnt]=a[i];
    		else g[k]=a[i];
    	}
    	cout<<cnt;
    	return 0;
    }
    
    

    信息

    ID
    641
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    539
    已通过
    137
    上传者