QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#569083#8339. Rooted TreeayxrakzilAC ✓1188ms159936kbC++141.1kb2024-09-16 20:23:422024-09-16 20:23:47

Judging History

This is the latest submission verdict.

  • [2024-09-16 20:23:47]
  • Judged
  • Verdict: AC
  • Time: 1188ms
  • Memory: 159936kb
  • [2024-09-16 20:23:42]
  • Submitted

answer

#include <bits/stdc++.h>

#define ll long long

const ll K = 1e7 + 5, mod = 1e9 + 9;

ll m, k, f[K], g[K], ans;

ll read() {
    ll res = 0, i = 1;
    char c = getchar();
    while (c < '0' || c > '9') {
        if (c == '-') i = -i;
        c = getchar();
    }
    while (c >= '0' && c <= '9') {
        res = res * 10 + c - '0';
        c = getchar();
    }
    return res * i;
}

void write(ll x) {
    if (x < 0) {
        putchar('-');
        x = -x;
    }
    if (x > 9) write(x / 10);
    putchar(x % 10 + '0');
}

ll qpow(ll a, ll b) {
    ll res = 1;
    while (b) {
        if (b & 1) res = res * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return res;
}

int main() {
    m = read(), k = read();
    for (ll i = 1; i <= k; ++i)
        g[i] = qpow(((m - 1) * (i - 1) % mod + 1) % mod, mod - 2), f[i] = (((f[i - 1] + (m - 1) * f[i - 1] % mod * g[i] % mod) % mod + m) % mod) % mod;
    for (ll i = 1; i <= k; ++i)
        ans = (ans + (m * f[i - 1] % mod * g[i] + m) % mod) % mod;
    write(ans);
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

6 2

output:

18

result:

ok 1 number(s): "18"

Test #2:

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

input:

2 6

output:

600000038

result:

ok 1 number(s): "600000038"

Test #3:

score: 0
Accepted
time: 71ms
memory: 16756kb

input:

83 613210

output:

424200026

result:

ok 1 number(s): "424200026"

Test #4:

score: 0
Accepted
time: 793ms
memory: 108540kb

input:

48 6713156

output:

198541581

result:

ok 1 number(s): "198541581"

Test #5:

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

input:

1 111

output:

6216

result:

ok 1 number(s): "6216"

Test #6:

score: 0
Accepted
time: 864ms
memory: 119608kb

input:

28 7304152

output:

457266679

result:

ok 1 number(s): "457266679"

Test #7:

score: 0
Accepted
time: 488ms
memory: 69804kb

input:

38 4101162

output:

232117382

result:

ok 1 number(s): "232117382"

Test #8:

score: 0
Accepted
time: 1188ms
memory: 158532kb

input:

51 9921154

output:

340670552

result:

ok 1 number(s): "340670552"

Test #9:

score: 0
Accepted
time: 211ms
memory: 34284kb

input:

79 1801157

output:

620550406

result:

ok 1 number(s): "620550406"

Test #10:

score: 0
Accepted
time: 648ms
memory: 90428kb

input:

22 5417157

output:

457449071

result:

ok 1 number(s): "457449071"

Test #11:

score: 0
Accepted
time: 381ms
memory: 55552kb

input:

25 3210162

output:

36368303

result:

ok 1 number(s): "36368303"

Test #12:

score: 0
Accepted
time: 345ms
memory: 49680kb

input:

67 2919160

output:

935195555

result:

ok 1 number(s): "935195555"

Test #13:

score: 0
Accepted
time: 1022ms
memory: 138148kb

input:

77 8613163

output:

482832472

result:

ok 1 number(s): "482832472"

Test #14:

score: 0
Accepted
time: 1181ms
memory: 159904kb

input:

90 10000000

output:

275581651

result:

ok 1 number(s): "275581651"

Test #15:

score: 0
Accepted
time: 1180ms
memory: 159872kb

input:

99 9999999

output:

126087169

result:

ok 1 number(s): "126087169"

Test #16:

score: 0
Accepted
time: 1172ms
memory: 159936kb

input:

100 10000000

output:

451590067

result:

ok 1 number(s): "451590067"

Extra Test:

score: 0
Extra Test Passed