Pagini recente » Cod sursa (job #64237) | Cod sursa (job #266379) | Cod sursa (job #2628650) | Cod sursa (job #1196224) | Cod sursa (job #929859)
Cod sursa(job #929859)
#include <cstdio>
using namespace std;
int const N=100001;
int v[N],lung[N],pred[N];
void subsir(int p)
{
if(pred[p]!=0)
subsir(pred[p]);
printf("%d ",v[p]);
}
int main()
{
int i,j,n,poz,max=0;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
for(i=1;i<=n;i++)
{
lung[i]=0;
for(j=1;j<=i;j++)
if(v[j]<v[i] && lung[j]>lung[i])
{
lung[i]=lung[j];
pred[i]=j;
}
lung[i]++;
}
for(i=1;i<=n;i++)
if(lung[i]>max)
{
max=lung[i];
poz=i;
}
printf("%d\n",max);
subsir(poz);
return 0;
}