MOD = 998244353 m = 999630629 def main(): import sys input = sys.stdin.read().split() N = int(input[0]) A = list(map(int, input[1:N+1])) sum_A = sum(A) # Compute sum_subset_sums pow2_Nminus1 = pow(2, N-1, MOD) sum_subset_sums = sum_A % MOD * pow2_Nminus1 % MOD if sum_A < m: print(sum_subset_sums % MOD) return T = sum_A - m B = [a for a in A if a <= T] sum_B = sum(B) len_B = len(B) if sum_B <= T: K = pow(2, len_B, MOD) else: # Initialize DP dp = [0] * (T + 1) dp[0] = 1 for a in B: for s in range(T, a - 1, -1): dp[s] = (dp[s] + dp[s - a]) % MOD K = sum(dp) % MOD answer = (sum_subset_sums - m % MOD * K) % MOD # Ensure non-negative answer = (answer + MOD) % MOD print(answer) if __name__ == '__main__': main()