#include <bits/stdc++.h>
using namespace std;

#define all(x) (x).begin(),(x).end()
#define SP <<" "<<
#define MOD 998244353
#define IINF 1000000000
#define LINF 1000000000000000000

typedef long long LL;
typedef long double LD;

int main(){
  int n;
  cin >> n;
  vector<int> a(n);
  int s=0;
  for(int i=0;i<n;i++) cin >> a[i],s+=a[i];
  vector<LL> dp1(90001,0),dp2(90001,0);
  dp1[0]=dp2[0]=1;
  for(int i=0;i<n;i++){
    for(int j=90000;j>=a[i];j--){
      dp1[j]=(dp1[j]+dp1[j-a[i]])%MOD;
      dp2[j]=(dp2[j]*2+dp2[j-a[i]])%MOD;
    }
    for(int j=a[i]-1;j>=0;j--) dp2[j]=dp2[j]*2%MOD;
  }
  LL h=(s+1)/2;
  LL x=0;
  for(int i=h;i<=90000;i++){
    x=(x+dp2[i])%MOD;
  }
  // LL y=0;
  // for(int i=0;i<=90000;i++){
  //   y=(y+dp2[i])%MOD;
  // }
  // cout << x SP y SP dp1[h] << endl;
  LL ans=1;
  for(int i=0;i<n;i++){
    ans=ans*3%MOD;
  }
  if(s%2){
    ans=(ans-x+MOD)%MOD;
    ans=(ans-x+MOD)%MOD;
    ans=(ans-x+MOD)%MOD;
    cout << ans << endl;
  }else{
    ans=(ans-x+MOD)%MOD;
    ans=(ans-x+dp1[h]%MOD+MOD)%MOD;
    ans=(ans-x+2*dp1[h]%MOD+MOD)%MOD;
    cout << ans << endl;
  }
  return 0;
}
