N = gets.to_i
a = []
N.times do
  a << gets.to_i
end

MOD = 998244353
total = 0
a.each do |x|
  total += x
end
HALF = (total + 1) / 2

cnt_all = 1
N.times do
  cnt_all *= 3
  cnt_all %= MOD
end

# p cnt_all

# AのコストでDP
cost = { 0 => 1 }
N.times do |i|
  next_cost = Hash.new(0)
  cost.each do |k, v|
    # Aで塗った時
    k1 = k + a[i]
    next_cost[k1] = (next_cost[k1] + v) % MOD

    # B, C で塗った場合
    next_cost[k] = (next_cost[k] + 2 * v) % MOD
  end
  cost = next_cost
end
cnt_a = 0
# p cost
cost.each do |k,v|
  cnt_a += v if k >= HALF
  cnt_a -= MOD if cnt_a > MOD
end
# p cost.values.inject(0, &:+)

# C=0でDP
cnt_ab = 0
if total % 2 == 0
  sum = 0
  cost = { 0 => 1 }
  N.times do |i|
    sum += a[i]
    next_cost = Hash.new(0)
    cost.each do |k, v|
      # Aで塗る場合、
      k1 = k + a[i]
      next_cost[k1] = (next_cost[k1] + v) % MOD

      # Bで塗る場合
      k2 = sum - k
      next_cost[k2] = (next_cost[k2] + v) % MOD

      # Cを塗る場合、カウントしない
    end
    cost = next_cost
  end

  cost.each do |k,v|
    cnt_ab += v if k == HALF
    cnt_ab -= MOD if k > MOD
  end
end

# p [total, cnt_all, cnt_a, cnt_ab]

ans = cnt_all
3.times do
  ans -= cnt_a
  ans += MOD if ans <= 0
end
# p [ans, cnt_ab]
3.times do
  ans += cnt_ab
  ans -= MOD if ans > MOD
end
puts ans
