Pagini recente » Cod sursa (job #1651875) | Diferente pentru schimbare-borland/alternativa intre reviziile 10 si 11 | Cod sursa (job #1700185) | Cod sursa (job #1968006) | Cod sursa (job #1695753)
#include <stdio.h>
using namespace std;
int n,v[100000],maxim,max1,k,i,j,c[100000];
void afisare(int x){
if(c[x]>=1){
int z=x;
while(c[z]!=c[x]-1&&v[z]>=v[x])z--;
afisare(z);
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);
printf("\n");
}