#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
template <class T>
inline void rd(T &x)
{
	x=0; char c=getchar(); int f=1;
	while(!isdigit(c)){if(c=='-')f=-1; c=getchar();}
	while(isdigit(c)) x=x*10-'0'+c,c=getchar(); x*=f;
}
const int N=310,M=N*N,mod=998244353;
void Add(int &x,int y) { x=(x+y)%mod; }
int Pow(int x,int y) {
	int res=1;
	while(y) {
		if(y&1) res=res*(ll)x%mod;
		x=x*(ll)x%mod,y>>=1;
	}
	return res;
}
int dp[N][M],n,m;
int f[N][M];
int a[N];
int main() {
	rd(n);
	for(int i=1;i<=n;++i) rd(a[i]),m+=a[i];
	dp[0][0]=1;
	for(int i=1;i<=n;++i)
		for(int j=0;j<=m;++j) {
			dp[i][j]=dp[i-1][j];
			if(j>=a[i]) Add(dp[i][j],dp[i-1][j-a[i]]*2ll%mod);
		}
//	for(int i=0;i<=m;++i) cout<<dp[n][i]<<' '; cout<<endl;
	int ans=Pow(3,n);
	for(int j=0;j<=m;++j) {
		if(j<=m-j) ans=(ans-dp[n][j]*3ll)%mod;
	}
	if(m%2==0) {
		f[0][0]=1;
		for(int i=1;i<=n;++i)
			for(int j=0;j<=m;++j) {
				f[i][j]=f[i-1][j];
				if(j>=a[i]) Add(f[i][j],f[i-1][j-a[i]]);
			}
		ans=(ans+3ll*f[n][m/2])%mod;
	}
	printf("%d\n",(ans+mod)%mod);
	return 0;
}