1<=n<=500
1<a[i]<=1000
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
bool h[200000];
int main()
{
int n,m,i,k,a[503],b[503];
while(scanf("%d",&n),n)
{
memset(h,0,sizeof(h));
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++) ///坑人呀,或许是我想的不周全,理解不到位
{
m=b[i];
while(m>1)
{
if(m%2)
m=(m*3+1)>>1;
else
m=m>>1;
h[m]=1;
}
}
for(k=i=0;i<n;i++)
{
if(!h[b[i]])
a[k++]=b[i];
}
printf("%d",a[--k]);
for(k--;k>=0;k--)
printf(" %d",a[k]);
printf("\n");
}
return 0;
}
-------江财小子