Pagini recente » Cod sursa (job #2090524) | Cod sursa (job #2276189) | Cod sursa (job #2439089) | Cod sursa (job #2698145) | Cod sursa (job #969771)
Cod sursa(job #969771)
#include <fstream>
using namespace std;
int v[100001],f[100001],prv[100001],g[100001];
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 max,maxx=0,imax;
for(int i=1;i<=n;i++)
{
max=0;
for(int j=1;j<n;j++)
{
if(v[j]<v[i] && f[j]>max)
{
max=f[j];
prv[i]=j;
}
}
f[i]=max+1;
if(f[i]>maxx)
{
maxx=f[i];
imax=i;
}
}
printf("%d\n",maxx);
g[maxx]=imax;
for(int i=maxx;i>0;i--)
{
imax=prv[imax];
g[i-1]=imax;
}
for(int i=1;i<=maxx;i++)
{
printf("%d ",v[g[i]]);
}
return 0;
}