Pagini recente » Cod sursa (job #158083) | Cod sursa (job #322039) | Cod sursa (job #1380231) | Cod sursa (job #3181185) | Cod sursa (job #628518)
Cod sursa(job #628518)
#include<cstdio>
#define Nmax 100001
int n;
int v[Nmax], d[Nmax];
int sol[Nmax];
void ReadData()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
}
void Sol()
{
int i,min,j;
d[1]=1;
int poz_t=1,min_t = 1;
for(i=2;i<=n;i++)
{
min = 0;
for(j=1;j<i;j++)
if(v[j]<v[i])
if(d[j]>min)
{
min = d[j];
}
d[i]=min+1;
if(d[i] > min_t)
{
min_t= d[i];
poz_t=i;
}
}
//return min_t;
printf("%d\n",min_t);
int nr=1;
sol[1]=v[poz_t];
--min_t;
for(i=poz_t - 1;i>=1;--i)
{
if(min_t == d[i] && v[i] != sol[nr])
{
--min_t;
//printf("%d ",v[i]);
sol[++nr]=v[i];
}
}
for(;nr>=1;nr--)
printf("%d ",sol[nr]);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
ReadData();
Sol();
return 0;
}