1 solutions

  • 0
    @ 2025-11-5 17:56:11

    C++ :

    #include<iostream>
    using namespace std;
    const int N = 30;
    int a[N],f[N];
    
    int main(){
    	int k;
    	while (cin>>k && k){
    		for (int i=1; i<=k; i++) cin>>a[i];
    		fill(f,f+N,1);
    		for (int i=2; i<=k; i++)
    			for (int j=1; j<=i-1; j++)
    				if (a[j]>=a[i]) f[i]=max(f[i],f[j]+1);
    		int ans=f[1];
    		for (int i=2; i<=k; i++) ans=max(ans,f[i]);
    		cout<<ans<<endl;
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    18656
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By