QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#621344#9443. Left Equals Rightrikka_lyly#WA 2ms3996kbC++201.5kb2024-10-08 13:21:402024-10-08 13:21:40

Judging History

你现在查看的是最新测评结果

  • [2024-10-08 13:21:40]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3996kb
  • [2024-10-08 13:21:40]
  • 提交

answer

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

#define ll long long
#define ull unsigned long long
#define MAXN 10010
#define int ll
const ll MOD = 998244353;

int fact[MAXN];
void pre()
{
    fact[0] = 1;
    for (int i = 1; i < MAXN; i++)
    {
        fact[i] = fact[i - 1] * i % MOD;
    }
}
ll qpow(ll a, ll b)
{
    ll ans = 0;
    while (b)
    {
        if(b & 1)
            ans = ans * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return ans;
}
ll inv(ll x)
{
    return qpow(x, MOD - 2);
}
ll C(int n, int m)
{
    return fact[n] * inv(fact[m]) % MOD * inv(fact[n - m]) % MOD;
}

void solve()
{
    int n;
    cin >> n;
    vector<int> a(n);
    int sum = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        sum += a[i];
    }
    if(sum % 2)
    {
        cout << 0 << '\n';
        return;
    }
    vector dp(n + 1, vector<int>(sum / 2 + 1));
    dp[0][0] = 1;
    for (int tt = 0; tt < n; tt++)
    {
        int x = a[tt];
        for (int i = tt + 1; i >= 1; i--)
        {
            for (int j = sum / 2; j >= x; j--)
            {
                dp[i][j] += dp[i - 1][j - x];
            }
        }
    }
    ll ans = 0;
    for (int i = 0; i <= n; i++)
    {
        (ans += dp[i][sum / 2] * fact[i] % MOD * fact[n - i] % MOD) %= MOD;
    }
    cout << ans << '\n';
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t = 1;
    pre();
    while (t--)
    {
        solve();
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3860kb

input:

3
4 9 5

output:

4

result:

ok "4"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3564kb

input:

2
100 100

output:

2

result:

ok "2"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3796kb

input:

8
3 2 6 3 1 2 4 5

output:

11520

result:

ok "11520"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3840kb

input:

2
93 93

output:

2

result:

ok "2"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3568kb

input:

2
62 45

output:

0

result:

ok "0"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3556kb

input:

3
32 68 36

output:

4

result:

ok "4"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

3
27 2 25

output:

4

result:

ok "4"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3692kb

input:

10
38 27 36 88 77 25 73 44 11 21

output:

126720

result:

ok "126720"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

10
93 78 29 81 14 20 18 71 85 48

output:

0

result:

ok "0"

Test #10:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

9
57 19 88 13 55 43 27 10 74

output:

5760

result:

ok "5760"

Test #11:

score: 0
Accepted
time: 0ms
memory: 3544kb

input:

10
80 1 44 85 32 85 3 4 80 45

output:

0

result:

ok "0"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3552kb

input:

10
56 72 93 39 70 78 3 10 84 48

output:

0

result:

ok "0"

Test #13:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

10
2 58 36 81 100 85 11 39 24 50

output:

118080

result:

ok "118080"

Test #14:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

10
70 23 3 26 98 18 63 32 22 25

output:

158400

result:

ok "158400"

Test #15:

score: 0
Accepted
time: 0ms
memory: 3572kb

input:

10
42 92 12 71 85 68 78 89 98 30

output:

0

result:

ok "0"

Test #16:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

10
26 5 25 35 77 46 81 13 73 32

output:

0

result:

ok "0"

Test #17:

score: 0
Accepted
time: 0ms
memory: 3880kb

input:

10
37 43 7 51 89 86 84 26 28 15

output:

103680

result:

ok "103680"

Test #18:

score: -100
Wrong Answer
time: 2ms
memory: 3996kb

input:

58
84 96 24 20 3 10 27 57 98 49 32 52 67 18 100 6 100 4 4 88 24 77 75 95 18 83 58 75 71 99 18 53 68 65 76 37 51 19 65 63 28 59 84 59 80 73 83 41 96 30 96 5 13 56 92 84 30 72

output:

429764033

result:

wrong answer 1st words differ - expected: '670239800', found: '429764033'