1 solutions
-
0
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