1 solutions

  • 0
    @ 2025-11-5 17:26:21

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    using namespace std;
    int i,m,n,j,a[10001],b[10001],l,jl,c[10001],t;
    int main()
    {
    // freopen("maxxl.in","r",stdin);
    // freopen("maxxl.out","w",stdout);
     cin>>n;
     for (i=1;i<=n;++i)
     {
      cin>>a[i];b[i]=1;
     }
     m=1;l=1;jl=1;
     for (i=2;i<=n;++i)
      for (j=1;j<=i-1;++j)
      {
       if (a[j]<=a[i]&&b[j]+1>b[i]) b[i]=b[j]+1;
       if (b[i]>m)
       {
    	m=b[i];
    	l=i;jl=i;
       }
      }
     cout<<m<<endl;
     t=1;c[1]=a[l];
     for (j=1;j<=m;++j)
      for (i=1;i<=l-1;++i)
       {
        if (a[i]<=a[jl]&&i<=jl&&b[i]==b[jl]-1)
        {
    	 jl=i;
    	 t+=1;c[t]=a[i];
    	 break;
        }
       }
     for (i=t;i>=1;--i)
      cout<<c[i]<<" ";
    // fclose(stdin);
    // fclose(stdout);
     //system("pause");
     return 0;
    }
    
    • 1

    Information

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