N = gets.chomp.to_i
 
a = []
a_sum = []
a_sum[0] = 0
sum = 0
x = 0
while x < N
  a[x] = gets.chomp.to_i
  sum += a[x]
  x += 1
end
a = a.sort
x = 0
while x < N
  a_sum[x+1] = a_sum[x] + a[x]
  x += 1
end

ng = (sum+1)/2
max_a = a.max
 
arra = Array.new(sum+1,0)
arrb = Array.new(sum+1,0)
arra[0] = 1
 
t=1
r=0
while t <= N
  r = 0 > ng - sum + a_sum[t-1] ? 0 : ng - sum + a_sum[t-1]
  while r <= (ng-1 < a_sum[t] ? ng-1 : a_sum[t])
    if t%2 == 0
      arra[r] = r >= a[t-1] ? (arrb[r-a[t-1]] + 2*arrb[r]) % 998244353 : 2*arrb[r] % 998244353
    else
      arrb[r] = r >= a[t-1] ? (arra[r-a[t-1]] + 2*arra[r]) % 998244353 : 2*arra[r] % 998244353
    end
    r += 1
  end
  while r >= ng &&r <= (sum < ng+max_a ? sum : ng+max_a)
    if t%2 == 0
      arra[r] = r-ng < a[t-1] ? ( arrb[r-a[t-1]] + 3*arrb[r]) % 998244353 : 3*arrb[r]
    else
      arrb[r] = r-ng < a[t-1] ? ( arra[r-a[t-1]] + 3*arra[r]) % 998244353 : 3*arra[r]
    end
    r += 1
  end
  t += 1
end
 
arr2a = Array.new(ng+1,0)
arr2b = Array.new(ng+1,0)
arr2a[0] = 1

t=1
while t <= N
  r = 0 > ng - sum + a_sum[t-1] ? 0 : ng - sum + a_sum[t-1]
  while r <= (ng < a_sum[t] ? ng : a_sum[t])
    if t%2 == 0
      arr2a[r] = r >= a[t-1] ? (arr2b[r-a[t-1]] + arr2b[r]) % 998244353 : (arr2b[r]) % 998244353
    else
      arr2b[r] = r >= a[t-1] ? (arr2a[r-a[t-1]] + arr2a[r]) % 998244353 : (arr2a[r]) % 998244353
    end
    r += 1
  end
  t += 1
end
 
c1 = 0
 
x = ng
while x <= sum
  c1 += N%2 == 0 ? arra[x] : arrb[x]
  x += 1
end
c1 = c1 % 998244353 
 
c2 = sum % 2 == 0 ? ( N%2 == 0 ? arr2a[ng] : arr2b[ng] ) : 0
 
all = 1
 
x = 1
while x <= N
  all *= 3
  all = all % 998244353
  x += 1 
end
 
answer = (all - c1*3 + c2*3 + 998244353) % 998244353 

puts answer