Pagini recente » Cod sursa (job #2848881) | Cod sursa (job #2361010) | Cod sursa (job #852190) | Cod sursa (job #89059) | Cod sursa (job #821189)
Cod sursa(job #821189)
#include<stdio.h>
#define N 100007
int n,v[N],lung[N],pmax,rez[N],prev[N];
void citire()
{
int max;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
int i;
for (i=1; i<=n; ++i)
{
scanf("%d",&v[i]);
max=0;
int j;
for ( j=1;j<i; ++j)
if (v[i]>v[j] && lung[j]>max) {
max=lung[j];
prev[i] = j;
}
lung[i]=1+max;
if(lung[i]>lung[pmax])
pmax=i;
}
}
void sir(int i)
{
if (prev[i])
sir(prev[i]);
printf("%d ",v[i]);
/*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(pmax);
return 0;
}