Pagini recente » Cod sursa (job #592945) | Cod sursa (job #307898) | Cod sursa (job #131887) | Cod sursa (job #768879) | Cod sursa (job #1102674)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long long m,j=1,d,i,n,x[100100],l,v[100100];
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
while((j<<1)<=l)
j<<=1;
m=0;
d=j;
while(d)
{
if(m+d<=l&&v[i]>v[x[m+d]])
m+=d;
d>>=1;
}
if(m==l)
{
x[++l]=i;
}
else
{
if(v[i]<v[x[m+1]])
{
x[m+1]=i;
}
}
}
g<<l<<'\n';
for(i=1;i<=l;i++)
g<<v[x[i]]<<" ";
g<<'\n';
return 0;
}