1 条题解

  • 0
    @ 2018-02-08 16:14:41

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n;
    long long a[10000],b[10000],c[10000];
    int main()
    {
    int l,k;
    cin>>n;
    for(int i=1;i<=n;i++)
    {cin>>a[i];
    b[i]=1;c[i]=0;
    }
    if (n==0)
    {
    printf("0\n");
    return 0;
    }
    for(int i=n-1;i>0;i--)
    {
    l=0;k=0;
    for(int j=i+1;j<=n;j++)
    if(a[j]>a[i]&&b[j]>l)
    {
    l=b[j];
    k=j;
    }
    if(l>0)
    {
    b[i]=l+1;
    c[i]=k;
    }
    }
    k=1;
    for(int i=2;i<=n;i++)
    if(b[i]>b[k]) k=i;
    cout<<"max="<<b[k]<<endl;
    cout<<a[k];
    k=c[k];
    while(k!=0)
    {
    cout<<" "<<a[k];
    k=c[k];
    }
    }

  • 1

信息

难度
5
分类
(无)
标签
递交数
36
已通过
13
通过率
36%
上传者