n=int(input())
arr=[int(i) for i in input().split()]
total=sum(arr)
if total%2==1 or max(arr)>total//2:
print("false")
else:
target=total//2
f=[False]*(target+1)
f[0]=True
for i in range(n):
for j in range(target,arr[i]-1,-1):
f[j]=f[j] or f[j-arr[i]]
if f[-1]: #提前结束
print("true")
break
else:
print("flase")
只需要检测到f[-1]为真时提前结束即可


京公网安备 11010502036488号