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[N-1]

arr = Array.new(2){ Array.new(ng+max_a+1,0) }
if max_a >= ng
  exit
end
arr[0][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])
    arr[t%2][r] = r >= a[t-1] ? (arr[(t-1)%2][r-a[t-1]] + 2*arr[(t-1)%2][r]) % 998244353 : 2*arr[(t-1)%2][r] % 998244353
    r += 1
  end
  if r >= ng
    while r <= ng+max_a
      arr[t%2][r] = r-ng < a[t-1] ? ( arr[(t-1)%2][r-a[t-1]] + 3*arr[(t-1)%2][r]) % 998244353 : 3*arr[(t-1)%2][r]
      r += 1
    end
  end
  t += 1
end
 
arr2 = Array.new(2){ Array.new(ng+1,0) }
arr2[0][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])
    arr2[t%2][r] = r >= a[t-1] ? (arr2[(t-1)%2][r-a[t-1]] + arr2[(t-1)%2][r]) % 998244353 : (arr2[(t-1)%2][r]) % 998244353
    r += 1
  end
  t += 1
end
 
c1 = 0
 
x = ng
while x <= sum
  c1 += arr[N%2][x]
  x += 1
end
c1 = c1 % 998244353 
 
c2 = sum % 2 == 0 ? arr2[N%2][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