Pagini recente » Cod sursa (job #955986) | Cod sursa (job #1863077) | Cod sursa (job #352900) | Cod sursa (job #2471558) | Cod sursa (job #1540176)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long mx,p,n,v[100005],i,poz[100005];
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
for (i=1;i<=n;i++)
{
long j;
for (j=1;j<=mx;j<<=1);
j>>=1;
for (p=0;j>0;j>>=1)
if (v[poz[p+j]]<v[i] && p+j<=mx)
p=p+j;
if (poz[p+1]==0 || v[poz[p+1]]>v[i])
{
if (poz[p+1]==0)
mx=p+1;
poz[p+1]=i;
}
}
g<<mx<<'\n';
for (i=1;i<=mx;i++)
g<<v[poz[i]]<<' ';
return 0;
}