Pagini recente » Cod sursa (job #503132) | Cod sursa (job #2561408) | Cod sursa (job #1339804) | Cod sursa (job #1417091) | Cod sursa (job #2059118)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("scmax.in");
ofstream g ("scmax.out");
int a[100000], n, lmax, pmax, l[100000], u,i,j,ma,k,v[100000];
int binar (int a)
{
int x=0, p=1,nr=0;
while (a!=0)
{
x=x+ p* (n%2);
if(x%10==1) nr++;
p*=10;
a/=2;
}
return nr;}
int main()
{
f>>n;
for (i=1;i<=n;i++)
f>>a[i];
l[1]=1;
pmax=1;
lmax=1;
for (i=2;i<=n;i++)
{
ma=0;
for (j=1;j<=i-1;j++)
if (binar (a[i])> binar (a[j]) && l[j]>ma) ma=l[j];
l[i]=1+ma;
if ( l[i]> lmax)
{
lmax=l[i];
pmax=i;
}
}
g<< lmax<<endl; k=lmax;
v[lmax]=a[pmax];
lmax--;
u=a[pmax];
for (i=pmax+1;i>=1;i--)
if (l[i]==lmax && binar (a[i]) < binar (u))
{
v[lmax]=a[i];
u=a[i];
lmax--;
}
for (i=1;i<=k;i++)
g<<v[i]<<" ";
return 0;
}