Pagini recente » Cod sursa (job #1102624) | Cod sursa (job #796937) | Cod sursa (job #2343147) | Cod sursa (job #974077) | Cod sursa (job #1706521)
#include<fstream>
#define MAX 100001
using namespace std;
ifstream cin("smax.in");
ofstream cout("smax.out");
int a[MAX],l[MAX],poz[MAX];
int n,m,prim;
void citire(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
}
void subsir(){
for(int i=n;i>=1;i--){
l[i]=1;poz[i]=0;
for(int j=i+1;j<=n;j++)
if(a[i]<a[j] && l[i]<1+l[j]){
l[i]=1+l[j];
poz[i]=j;
}
if(m<l[i]) {m=l[i];prim=i;}
}
}
void tipar(){
cout<<m<<'\n';
for(int i=prim;i>0;i=poz[i])
cout<<a[i]<<' ';
}
int main(){
citire();
subsir();
tipar();
return 0;
}