Pagini recente » Cod sursa (job #1514379) | Cod sursa (job #844612) | Cod sursa (job #1505936) | Cod sursa (job #1244137) | Cod sursa (job #1864430)
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100003],i,m,k,l,s,q[100003],p[100003],sol[100003],j;
int main()
{
f>>n;
for(i=1; i<=n; i++) f>>v[i];
q[1]=v[1];
k=1;
for(i=2; i<=n; i++)
{
l=1;
s=k;
while(l<=s)
{
m=(l+s)/2;
if(q[m]<v[i]) l=m+1;
else s=m-1;
}
if(l>k) k++;
q[l]=v[i];
p[i]=k;
}
g<<k<<'\n';
j=0;
for(i=n;i>=1 && k>0;i--) if(p[i]==k) sol[++j]=v[i],k--;
for(i=j;i>=1;i--) g<<sol[i]<<' ';
}