Pagini recente » Cod sursa (job #2379624) | Cod sursa (job #213656) | Cod sursa (job #3216021) | Cod sursa (job #2480799) | Cod sursa (job #265071)
Cod sursa(job #265071)
#include<stdio.h>
#define DIM 100001
int n,a[DIM],max,ind,lung[DIM],prec[DIM],b[DIM];
void read ()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
}
void solve ()
{
int i,j;
for(i=1;i<=n;++i)
{
max=ind=0;
for(j=1;j<i;++j)
if(a[i]>a[j] && lung[j]>max)
{
max=lung[j];
ind=j;
}
lung[i]=max+1;
prec[i]=ind;
}
max=ind=0;
for(i=1;i<=n;++i)
if(lung[i]>max)
{
ind=i;
max=lung[i];
}
}
void show ()
{
int max2=max,i;
printf("%d\n",max);
b[max--]=a[ind];
while(prec[ind])
{
b[max--]=a[prec[ind]];
ind=prec[ind];
}
for(i=1;i<=max2;++i)
printf("%d ",b[i]);
}
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
read ();
solve ();
show ();
return 0;
}