Pagini recente » Cod sursa (job #299652) | Cod sursa (job #1247604) | Cod sursa (job #1656348) | Cod sursa (job #1572920) | Cod sursa (job #1267852)
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[100],lung[100],contor[100],sol[100];
int cauta(int a)
{
for(int i=1;i<=lung[0];++i)
if(a<=lung[i]) return i;
return ++lung[0];
}
int main()
{
int N,maxim=0,ind=1;
freopen("date.in","r",stdin);
scanf("%d",&N);
for(int i=1;i<=N;++i)
scanf("%d",&v[i]);
lung[++lung[0]]=v[1];
for(int i=2;i<=N;++i){
int variabila;
lung[(variabila=cauta(v[i]))]=v[i];
contor[i]=variabila;
if(variabila>maxim){
ind=i;
sol[0]=(maxim=variabila);
}
}
N=maxim;
printf("%d\n",maxim);
for(;ind;ind--){
if(contor[ind]==maxim){
maxim--;
sol[sol[0]--]=v[ind];
}
}
for(int i=1;i<=N;++i)
printf("%d ",sol[i]);
fclose(stdin);
return 0;
}