Pagini recente » Cod sursa (job #1368282) | Cod sursa (job #1801584) | Cod sursa (job #1823994) | Cod sursa (job #820663) | Cod sursa (job #592683)
Cod sursa(job #592683)
#include <fstream>
using namespace std;
const int N=100005;
int v[N],a[N],p[N],rez[N],n;
ifstream in("scmax.in");
ofstream out("scmax.out");
int bs(int x)
{
int i,step=1<<16;
for (i=0;step;step>>=1)
if (i+step<=a[0] && a[i+step]<x)
i+=step;
return i+1;
}
int main()
{
int i,x,nr;
in>>n;
for (i=1;i<=n;i++)
{
in>>v[i];
x=bs(v[i]);
if (x>a[0])
a[0]=x;
a[x]=v[i];
p[i]=x;
}
out<<a[0]<<"\n";
nr=a[0];
rez[a[0]+1]=2000000001;
for (i=n;i;i--)
if (p[i]==a[0] && rez[a[0]+1]>v[i])
rez[a[0]--]=v[i];
for (i=1;i<=nr;i++)
out<<rez[i]<<" ";
out<<"\n";
return 0;
}