Pagini recente » Cod sursa (job #1490238) | Cod sursa (job #2006938) | Cod sursa (job #2236168) | Cod sursa (job #563745) | Cod sursa (job #1457740)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
#define mod 666013
int N,M,x;
int op;
int arr[100001];
int lis[100001];
int prev[100001];
int maxi,index;
vector<int>sol;
int main()
{
//freopen("scmax.in","r",stdin);
// freopen("scmax.out","w",stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
cin>>N;
for(int i=0;i<N;i++)
cin>>arr[i];
for(int i=1;i<N;i++)
for(int j=0;j<i;j++)
if(arr[j]<arr[i] && lis[i]<lis[j]+1){
lis[i]=lis[j]+1;
prev[i]=j;
if(lis[i]>maxi)
maxi=lis[i],index=i;
}
//cout<<maxi<<" \n";
while(index!=0)
{sol.push_back(arr[index]);
index=prev[index];
}
cout<<maxi+1<<"\n";
for(int i=sol.size()-1;i>=0;i--)
cout<<sol[i]<<" ";
return 0;
}