Pagini recente » Cod sursa (job #2642954) | Cod sursa (job #502701) | Cod sursa (job #372660) | Cod sursa (job #2830183) | Cod sursa (job #1961577)
#include <iostream>
#include <fstream>
using namespace std;
const int maxn=100000;
int pre[100000],best[100000];
int n, a[maxn];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void drum(int p){
if(p==-1)
return;
drum(pre[p]);
fout<<a[p]<<" ";
}
int main()
{
fin>>n;
int max,p;
best[0]=1;pre[0]=-1;
for(int i=0;i<n;i++){
fin>>a[i];
for(int i=1;i<n;i++){
p=-1;max=0;
for(int j=0;j<i;j++){
if(a[j]<a[i] && best[j]>max){
max=best[j];
p=j;
}
best[i]=1+max;
pre[i]=p;}
}}
max=0;p=0;
for(int i=0;i<n;i++)
if(best[i]>max)
{
max=best[i];
p=i;
}
fout<<max<<endl;
drum(p);
return 0;
}