Pagini recente » Cod sursa (job #620055) | Cod sursa (job #3270346) | Cod sursa (job #3139211) | Cod sursa (job #770716) | Cod sursa (job #1338241)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int i,n,m,a[100010],l[100010],poz,d[100010],v[100010],lg,sol;
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>a[i];
for(i=1;i<=n;++i)
{
poz=upper_bound(l+1,l+m+1,a[i])-l;
if(l[poz-1]==a[i]) --poz;
if(poz>m) ++m;
l[poz]=a[i];
d[i]=poz;
sol=max(poz,sol);
}
g<<sol<<'\n';
for(i=n;i>=1;--i)
if(d[i]==sol)
{
v[++lg]=a[i];
--sol;
}
for(i=lg;i;--i)
g<<v[i]<<" ";
g<<'\n';
return 0;
}