μ€ μ§μ΄μλ μ«μκ° μ£Όμ΄μ§ λ μ«μ μ¬μ΄μ +
νΉμ -
λ₯Ό λ£μ΄ λ§μ§λ§ μλ₯Ό λ§λ€ μ μλ μ¬λ°λ₯Έ λ±μμ λ§λλ €κ³ νλ€.
μλ₯Ό λ€μ΄ "8 3 2 4 8 7 2 4 0 8 8"μμ
λ±μ "8+3-2-4+8-7-2-4-0+8=8"λ₯Ό λ§λ€ μ μλ€.
κ³μ° μ€κ°μ λμ€λ μκ° μμμ΄κ±°λ 20μ λκΈ°λ©΄ μλ λ, λ§λ€ μ μλ μ¬λ°λ₯Έ λ±μμ κ°μλ₯Ό ꡬνλ λ¬Έμ λ€.
import sys
read = sys.stdin.readline
N = int(read())
nums = list(map(int, read().split()))
dp = [[0] * 21 for _ in range(N-1)]
dp[0][nums[0]] = 1
for i in range(1, N-1):
for j in range(21):
if j-nums[i]>=0: dp[i][j-nums[i]] += dp[i-1][j]
if j+nums[i]<=20: dp[i][j+nums[i]] += dp[i-1][j]
print(dp[-1][nums[-1]])
21
*N-1
ν¬κΈ°μ dp ν
μ΄λΈ μμ±.i
λ²μ§Έ μλΆν° μμν΄ μ°μ°μ ν΅ν΄ j
λ₯Ό λ§λ€ μ μλμ§ κ²μ¬.-
νΉμ +
λ₯Ό λ£μ΄μ j
λ₯Ό λ§λ€ μ μμ λ