Pagini recente » Cod sursa (job #1722928) | Cod sursa (job #2120880) | Cod sursa (job #1529211) | Cod sursa (job #2374392) | Cod sursa (job #1605657)
#include <iostream>
#include <cstdio>
using namespace std;
int v[100005],l[100005],t[100005];
void print(int i)
{
if(t[i])
print(t[i]);
printf("%d ",v[i]);
}
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]);
int maxim=0,imax;
for(int i=1;i<=n;++i)
{
l[i]=1;
for(int j=1;j<i;++j)
if(v[j]<v[i]&&l[j]+1>l[i])
{
l[i]=l[j]+1;
if(l[i]>maxim)
{
maxim=l[i];
imax=i;
}
t[i]=j;
}
}
printf("%d\n",maxim);
print(imax);
return 0;
}