''' 解题思路: 先按数字按3和5的倍数分组,再利用两数组相等的条件,将剩下数字分到两组中去 剩下数字分组,满足子集相加等于指定值,这里穷举,可以用更好算法 ''' #============================================ # 将i转成二进制(长度填充到length),以list返回1的位置 def sub_str(i,length): t = str(bin(i)) t = t[2:] t = t.zfill(length) select = [] for j in range(length): if t[j]=='1': select.append(j) return select while 1: try: #============================================ n = int(input()) L = list(map(int,input().strip().split())) #print('n=',n,'L=',L) A3=[] B5=[] C=[] for i in L: if i % 5 == 0: B5.append(i) elif i % 3 == 0: A3.append(i) else: C.append(i) #print('A3 = ',A3,'B5=',B5,'C=',C) s3 = sum(L)/2-sum(A3) s5 = sum(L)/2-sum(B5) #print('s3=',s3,'s5=',s5) #============================================ if len(C)==0: if s3==s5: print('true') else: print('false') #============================================ else: length = len(C) #print(2**length) k = False for i in range(1,2**length): pos = sub_str(i,length) #print(pos) s = 0 for p in pos: s += C[p] if s==s3 or s==s5: k = True break if k: print('true') else: print('false') #============================================ except: break ''' 20 -2 0 -3 3 -3 -4 -3 1 3 3 -2 0 3 2 2 -5 1 -2 -3 -5 9 1 -5 5 3 2 1 -2 -5 -2 true true '''