把输入中的每个数能"cover的数"分别存在对应的链表里;
然后开始枚举输入中的每个数,看它是否在某条链表中(是否被某个数cover);若找不到这样的链表,说明它不被cover, 即为关键数。
1. str的split方法
2. list的extend增加一个或多个元素
3. list的append增加一个元素
4. list.sort默认从小到大排序,list.sort(reverse = True)从大到小排序
5. list的in方法
if __name__ == "__main__" :
k = input()
tmp = raw_input().split(' ') # split, extend, append
num = []
for i in range(k) :
num.append(int(tmp[i]))
num.sort(reverse = True)
num_list = []
ans = []
for i in num :
tmp_list = []
while i != 1 :
if i % 2 == 0 :
i = i / 2
else :
i = (i * 3 + 1) / 2
tmp_list.append(i)
num_list.append(tmp_list)
for i in num :
no_find = True
for j in num_list :
if i in j :
no_find = False
break
if no_find == True :
ans.append(i)
for i in ans :
print i,