Pagini recente » Cod sursa (job #2263574) | Cod sursa (job #2553522) | Cod sursa (job #1700186) | Atasamentele paginii inca_vacanta_ix | Cod sursa (job #1695769)
#include <stdio.h>
using namespace std;
int n,v[100000],maxim,max1,k,i,j,c[100000];
void afisare(int x,int a){
if(a>=0){
int z=x;
while(c[z]!=a)z--;
afisare(z,a-1);
printf("%d ",v[x]);}
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&v[i]);
maxim=0;
for(j=i;j>=1;j--){
if(c[j]>maxim&&v[j]<v[i])maxim=c[j];
}
c[i]=maxim+1;
if(max1<maxim){
k=i;
max1=maxim;
}
}
printf("%d\n",c[k]);
afisare(k,max1);
}