Pagini recente » Cod sursa (job #803256) | Cod sursa (job #139209) | Cod sursa (job #2351934) | Cod sursa (job #627592) | Cod sursa (job #2518337)
//#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int Max=100005;
ifstream in("scmax.in");
ofstream out("scmax.out");
vector <int>v; int n,sir[Max],nr,ind[Max],sol[Max],q;
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
int x; in>>x;
if(binary_search(v.begin(),v.end(),x)==0)
{
int poz=upper_bound(v.begin(),v.end(),x)-v.begin();
if(poz==v.size())
v.push_back(x);
else
v[poz]=x;
sir[++nr]=x;
ind[nr]=poz;
}
}
out<<v.size()<<"\n";
int num=v.size()-1;
for(int i=nr;i>=0;i--)
if(ind[i]==num)
{
sol[++q]=sir[i]; num--;
}
for(int i=q;i>=1;i--)
out<<sol[i]<<" ";
return 0;
}