Pagini recente » Cod sursa (job #1018912) | Cod sursa (job #1764954) | Cod sursa (job #1734325) | Cod sursa (job #3162927) | Cod sursa (job #485397)
Cod sursa(job #485397)
#include <stdio.h>
#define Lg 100000
using namespace std;
int s1[Lg],s2[Lg],a[Lg],n,af[Lg];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d", &a[i]);
int lg=0;
for(int i=0;i<n;i++){
int ok=0;
for(int j=0;j<lg && ok==0 ;j++){
if(s1[j]>=a[i]){
s1[j]=a[i];
s2[i]=lg;
ok=1;
}
}
if(ok==0){
s1[lg++]=a[i];
s2[i]=lg;
}
}
printf("%d\n", lg);
int p=0;
for(int i=n-1;i>=0 || lg==0;i--){
if(s2[i]==lg){
af[p++]=a[i];
lg--;}
}
p--;
for(int i=p-1;i>=0;i--)
printf("%d " ,af[i]);
return 0;
}