static ll MOD=998244353; ll cd(ll a, ll b) { return (a/b + (a%b!=0)); } int main(){ ll n; cin >> n; vector a(n); for (auto &p:a) cin >> p; sort(a.begin(), a.end()); vector size_cnt(5001,0); size_cnt[0] = 1; ll ans = 0; for (auto x : a){ for (ll i=(5000); i>=0; --i){ if (size_cnt[i]){ size_cnt[i+x] += size_cnt[i]; size_cnt[i+x]%=MOD; if (x >= i){ ans += (x*size_cnt[i])%MOD; ans%=MOD; } else{ ans += (size_cnt[i]*cd(x+i,2))%MOD; ans%=MOD; } } } } cout << ans << "\n"; }