Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define _test int _TEST; cin>>_TEST; while(_TEST--)
- #define pb push_back
- ll int A[5005];
- ll int dp[5005][7005];
- int main()
- {
- int mod = 998244353;
- int n;
- cin>>n;
- for(int i=1;i<=n;i++) cin>>A[i];
- sort(A+1,A+n+1);
- dp[0][0] = 1;
- ll int sum = 0;
- ll int ans=0;
- for(int i=1; i<=n; i++)
- {
- for(int j=0; j<=sum; j++)
- {
- dp[i][j] = (dp[i][j] + dp[i-1][j]) % mod;
- dp[i][j+A[i]] = (dp[i][j+A[i]] + dp[i-1][j]) % mod;
- }
- for(int j=0; j<=sum; j++)
- {
- if(j<=A[i])
- ans = (ans + dp[i-1][j]*1ll*A[i]) % mod;
- else
- ans = (ans + dp[i-1][j]*1ll*((A[i]+j+1)/2)) % mod;
- }
- sum+=A[i];
- }
- cout<<ans%mod<<"\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement