n = int(input())
A = list(map(int, input().split(' ')))
q = int(input())
M = list(map(int, input().split(' ')))

dp = {}

# Aの要素のうちp番目以降を組み合わせてtを作れるか?
def solve(p, t):
  if ((p, t) in dp):
    return dp[(p, t)]

  if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
  ans = solve(p+1, t-A[p]) or solve(p+1, t)
  dp[(p, t)] = ans
  return ans

for m in M:
  print("yes" if solve(0, m) else "no")
 n = int(input()) n int(input()) int input() input A = list(map(int, input().split(' '))) A list(map(int, input().split(' '))) list map(int, input().split(' ')) map int input().split(' ') ().split () input split ' ' q = int(input()) q int(input()) int input() input M = list(map(int, input().split(' '))) M list(map(int, input().split(' '))) list map(int, input().split(' ')) map int input().split(' ') ().split () input split ' ' dp = {} dp {} def solve(p, t):
  if ((p, t) in dp):
    return dp[(p, t)]

  if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
  ans = solve(p+1, t-A[p]) or solve(p+1, t)
  dp[(p, t)] = ans
  return ans solve if ((p, t) in dp):
    return dp[(p, t)]

   (p, t) in dp (p, t) p t dp return dp[(p, t)] dp[(p, t)] dp (p, t) p t if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
   p == n p n return t == 0 t == 0 t 0 ans = solve(p+1, t-A[p]) or solve(p+1, t) ans solve(p+1, t-A[p]) or solve(p+1, t) solve(p+1, t-A[p]) solve p+1 p 1 t-A[p] t A[p] A p solve(p+1, t) solve p+1 p 1 t dp[(p, t)] = ans dp[(p, t)] dp (p, t) p t ans return ans ans p p t t for m in M:
  print("yes" if solve(0, m) else "no") m M print("yes" if solve(0, m) else "no") print "yes" if solve(0, m) else "no" solve(0, m) solve 0 m "yes" "no" q = int(input()) int(input()) q A = list(map(int, input().split(' '))) list(map(int, input().split(' '))) A n = int(input()) int(input()) n M = list(map(int, input().split(' '))) list(map(int, input().split(' '))) M dp = {} {} dp def solve(p, t):
  if ((p, t) in dp):
    return dp[(p, t)]

  if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
  ans = solve(p+1, t-A[p]) or solve(p+1, t)
  dp[(p, t)] = ans
  return ans def solve(p, t):
  if ((p, t) in dp):
    return dp[(p, t)]

  if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
  ans = solve(p+1, t-A[p]) or solve(p+1, t)
  dp[(p, t)] = ans
  return ans solve
n = int(input())
A = list(map(int, input().split(' ')))
q = int(input())
M = list(map(int, input().split(' ')))

dp = {}

# Aの要素のうちp番目以降を組み合わせてtを作れるか?
def solve(p, t):
  if ((p, t) in dp):
    return dp[(p, t)]

  if (p == n):
    # 使う/使わないの枝をたどって0になったらOK
    return t == 0

  # p番目を使ったらtを引いて次へ, 使わなければtのまま次へ
  ans = solve(p+1, t-A[p]) or solve(p+1, t)
  dp[(p, t)] = ans
  return ans

for m in M:
  print("yes" if solve(0, m) else "no")

