Pagini recente » Cod sursa (job #3283248) | Cod sursa (job #325571) | Cod sursa (job #2509131) | Cod sursa (job #266020) | Cod sursa (job #1010670)
#include<stdio.h>
int n,i,j,v[100013],t[100013],l[100013],b,ib,max,imax;
void scrie(int i)
{
if(i==-1)return;
scrie(t[i]);
printf("%d ",v[i]);
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;++i)scanf("%d",&v[i]);
max=-1;
for(i=0;i<n;++i)
{
b=0;
j=i-1;
while(j!=-1)
{
if(v[j]<v[i])
{
if(l[j]>b)
{
b=l[j];
ib=j;
}
}
--j;
}
if(b==0)t[i]=-1,l[i]=1;
else
{
l[i]=b+1;
t[i]=ib;
if(l[i]>max)max=l[i],imax=i;
}
}
printf("%d\n",max);
scrie(imax);
return 0;
}