Pagini recente » Cod sursa (job #365625) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #1251219) | Cod sursa (job #600459) | Cod sursa (job #1695782)
#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);
}