题目:
程序说明:
创建一个一维列表来记录状态,后面可以把上一层的状态复制拷贝成新的,然后在之后就直接在新的上面进行操作,这样是防止重复使用同一个砝码。
全部代码:
n=int(input())
li = list(map(int, input().split()))
Len = sum(li)
res = [0 for _ in range(Len + 1)]
res[0] = 1
for i, k in enumerate(li):
nres = res.copy()
for j in range(Len + 1):
if res[j]:
temp = j + k
if temp <= Len:
nres[temp] = 1
temp = j - k
nres[abs(temp)] = 1
res = nres
print(sum(res[1:]))