n = int(input())
m_list = list(map(int, input().split())) # 每种砝码的重量
x_list = list(map(int, input().split())) # 每种砝码的数量
possible = {0} # 初始状态:只有0重量
for m, x in zip(m_list, x_list):
# 先把当前集合复制一份,避免循环时修改原集合
new_weights = set()
for w in possible:
# 对每个已有重量,加上1~x个当前砝码的重量
for k in range(1, x+1):
new_weights.add(w + m * k)
# 把新重量合并到possible里
possible.update(new_weights)
print(len(possible))

京公网安备 11010502036488号