题解 | #称砝码#
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
import sys
#for line in sys.stdin:
# a = line.split()
# print(int(a[0]) + int(a[1]))
n = int(input())
listm = list(input().split())
#此处定义砝码的数量
listnumber = list(input().split())
listnumber = list(map(lambda x : int(x),listnumber))
#此处定义砝码的质量
listm = list(map(lambda x : int(x),listm))
#定义重量列表
wight_list = [0]
# 遍历各种砝码的重量
for i in range(n):
# 放入砝码为listm[i]重量为j个后,增加的重量
tmp = [ ]
# 质量对应的数量进行遍历添加,添加0个,或者一个,或者到listnumber[i]个
for j in range(listnumber[i]+1):
#添加j个,就意味着增加j*listm[i]的质量,比如j=0,不增加,j=1那就需要增加1个listm[i]质量的砝码
#因为总共有J个,最多可以增加0,1,2...listnumber[i]+1种
tmp.append(listm[i]*j)
tmp2 =[ ]
for a in tmp:
for b in wight_list:
tmp2.append(a+b)
wight_list = list(set(tmp2))
#打印重量种类
print(len(wight_list))


