Pagini recente » Cod sursa (job #1207188) | Cod sursa (job #1692418) | Cod sursa (job #903019) | Cod sursa (job #2846822) | Cod sursa (job #1706524)
#include<fstream>
#define MAX 100001
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.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;
}