Pagini recente » Cod sursa (job #2962053) | Cod sursa (job #2085642) | Cod sursa (job #1409693) | Cod sursa (job #1883313) | Cod sursa (job #386327)
Cod sursa(job #386327)
#include<cstdio>
#define N 100001
int v[N],ant[N],lung[N],maxx,maxg,n,poz;
void citire()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n; ++i)
scanf("%d",&v[i]);
}
void dinamica()
{
lung[1]=1;
maxg=1;
for (int i=2; i<=n; ++i)
{
lung[i]=1;
for (int j=1; j<i; ++j)
{
if (v[j]<v[i]&&lung[j]+1>lung[i])
{
lung[i]=lung[j]+1;
ant[i]=j;
}
}
if (lung[i]>maxg)
{
maxg=lung[i];
poz=i;
}
}
}
void afis(int poz)
{
if (!ant[poz])
return ;
afis(ant[poz]);
printf("%d ", v[ant[poz]]);
}
int main()
{
citire();
dinamica();
printf("%d\n",maxg);
afis(poz);
printf("%d",v[poz]);
return 0;
}