1 solutions

  • 1
    @ 2025-11-16 15:20:46
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[1010],dp[1010],ans,cnt,k,g[1010];
    int main()
    {
    	while(cin>>a[++n])
    	{
    		continue;
    	}
    	n--;
    	for(int i=1;i<=n;i++)
    	{
    		dp[i]=1;
    		for(int j=1;j<i;j++)
    		{
    			if(a[i]<=a[j])
    			{
    				dp[i]=max(dp[i],dp[j]+1);
    			}
    		}
    		ans=max(ans,dp[i]);
    	}
    	cout<<ans<<"\n";
    	for(int i=1;i<=n;i++)
    	{
    		k=0;
    		while(k<cnt&&g[k]<a[i])
    		{
    			k++;
    		}
    		g[k]=a[i];
    		if(k==cnt)
    		{
    			cnt++;
    		}
    	}
    	cout<<cnt;
    	return 0;
    }
    
    • 1

    Information

    ID
    256
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    7
    Tags
    # Submissions
    10
    Accepted
    7
    Uploaded By