输入第一行为数字个数n (n ≤ 20) 第二行为n个数xi (1 ≤ xi ≤ 100000)
输出最小不能由n个数选取求和组成的数
3 5 1 2
4
while True:
try:
num,digitList = int(input()),list(map(int,input().split()))
digitList.sort()
pieceNum = 0 #表示此前已经可以拼凑前pieceNum的数了
for i in digitList:
if pieceNum+1 >= i: #如果当前i比pieceNum+1还要大,则这些数凑不出pieceNum+1
pieceNum += i #此时能凑的最大数为pieceNum+i
else:
print(pieceNum+1)
break
else:
print(pieceNum+1)
except Exception:
break