Pagini recente » Cod sursa (job #2483220) | Cod sursa (job #1443878) | Cod sursa (job #712781) | Cod sursa (job #1230473) | Cod sursa (job #3195618)
#include <fstream>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
vector < int > v , dp;
int main()
{
int n,a;
cin>>n;
v.resize(n+1);
dp.resize(n+1);
for(int i=1;i<=n;i++)
dp[i]=2000000005;
int r=1;
for(int i=1;i<=n;i++){
cin>>a;
int x=lower_bound(dp.begin(),dp.begin()+r,a)-dp.begin();
if(x==n && dp[x]<a)
continue;
if(x==r){
dp[x]=a;
r++;
continue;
}
dp[x]=a;
}
cout<<r-1<<'\n';
for(int i=1;i<r;i++)
cout<<dp[i]<<" ";
return 0;
}