Pagini recente » Cod sursa (job #1642603) | Cod sursa (job #2829382) | Cod sursa (job #2987876) | Cod sursa (job #1835439) | Cod sursa (job #1864441)
#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]=1;
k=1;
for(i=2; i<=n; i++)
{
l=1;
s=k;
while(l<=s)
{
m=(l+s)/2;
if(v[q[m]]<v[i]) l=m+1;
else s=m-1;
}
if(l>k) k++;
q[l]=i;
p[i]=q[l-1];
}
g<<k<<'\n';
i=q[k];
while(i!=0) sol[++j]=i,i=p[i];
for(i=k; i>=1; i--) g<<v[sol[i]]<<" ";
}