Pagini recente » Cod sursa (job #698348) | Cod sursa (job #627628) | Cod sursa (job #2847412) | Cod sursa (job #698339) | Cod sursa (job #1993612)
#include<cstdio>
#include<algorithm>
using namespace std;
const int NMAX=100005;
int v[NMAX],vec[NMAX],a[NMAX],vectorr[NMAX];
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n;
scanf("%d", &n);
for(int i=1;i<=n;i++)
scanf("%d", &v[i]);
for(int i=1;i<=n;i++){
vec[i]=1;
for(int j=i-1;j>=1;j--)
if(v[j]<v[i] && vec[j]+1>vec[i]){
vec[i]=vec[j]+1;
a[i]=j;
}
}
int maxx=-1,poz=-1;
for(int i=1;i<=n;i++){
if(maxx<vec[i]){
maxx=vec[i];
poz=i;
}
}
printf("%d\n", maxx);
vectorr[maxx]=v[poz];
for(int i=2;i<=maxx;i++){
vectorr[maxx-i+1]=v[a[poz]];
poz=a[poz];
}
for(int i=1;i<=maxx;i++)
printf("%d ", vectorr[i]);
return 0;
}