Pagini recente » Cod sursa (job #2929513) | Cod sursa (job #1443647) | Cod sursa (job #233215) | Cod sursa (job #324927) | Cod sursa (job #2562358)
#include <iostream>
#include <fstream>
#define MAXN 100001
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[MAXN],se[MAXN],u[MAXN],rez[MAXN];
int main(){
int n,speci,maxse=0;
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
se[i]=1;
for(int j=1;j<i;j++){
if(v[i]>v[j] and se[i]<se[j]+1){
se[i]=se[j]+1;
u[i]=j;
}
}
if(se[i]>maxse) maxse=se[i],speci=i;
}
bool done=false;
for(int i=speci;done==false;i=u[i]){
rez[se[i]]=v[i];
if(se[i]==1)
done=true;
}
fout<<maxse<<'\n';
for(int i=1;i<=maxse;i++){
fout<<rez[i]<<' ';
}
return 0;
}