Pagini recente » Cod sursa (job #2539906) | Cod sursa (job #443468) | Cod sursa (job #2849975) | Cod sursa (job #2030822) | Cod sursa (job #268063)
Cod sursa(job #268063)
#include<stdio.h>
const int N=100007;
int n,v[N],lung[N],pmax,rez[N];
void citire()
{
int max;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n; ++i)
{
scanf("%d",&v[i]);
max=0;
for (int j=1;j<i; ++j)
if (v[i]>v[j] && lung[j]>max)
max=lung[j];
lung[i]=1+max;
if(lung[i]>lung[pmax])
pmax=i;
}
}
void sir()
{
int i=pmax-1,aux=lung[pmax];
rez[lung[pmax]]=v[pmax];
while(i)
{
if(v[i]<v[pmax] && lung[i]==lung[pmax]-1)
{
rez[lung[i]]=v[i];
pmax=i;
}
--i;
}
for(i=1;i<=aux;++i)
printf("%d ",rez[i]);
}
int main()
{
citire();
printf("%d\n",lung[pmax]);
sir();
return 0;
}