#思路: #采用集合来存储不重复的可能的重量组合 #每次检查新的砝码加进来是否会产生新的重量 n=input() #存储砝码种类 m=input().split() for i in range(len(m)): m[i]=int(m[i]) #存储每种砝码数量 x=input().split() for i in range(len(x)): x[i]=int(x[i]) #存储所有的砝码 m1=[] for i in range(len(x)): for j in range(x[i]): m1.append(m[i]) #使用集合存储所有结果 ans={0}#最妙的是这个,集合元素初始为0,这样在下面就可以通过加和来得到添加的元素自身 for i in m1: for j in list(ans):#这里不要直接遍历ans集合,因为在遍历过程中往ans中添加元素会报错 ans.add(i+j) print(len(ans))