QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#905005#4842. Rectangle Placementshinonome_ena#AC ✓0ms1664kbC++261.5kb2025-02-18 20:34:582025-02-18 20:34:58

Judging History

This is the latest submission verdict.

  • [2025-02-18 20:34:58]
  • Judged
  • Verdict: AC
  • Time: 0ms
  • Memory: 1664kb
  • [2025-02-18 20:34:58]
  • Submitted

answer

#include <cstdio>
#include <cstdlib>

const int MOD = 998244353;

int pw(int x, int y) {
    if (!y) return 1;
    int t = pw(x, y / 2);
    t = 1LL * t * t % MOD;
    if (y % 2) t = 1LL * t * x % MOD;
    return t;
}

int ncr(int n, int r) {
    if (!r) return 1;
    if (r == 1) return n % MOD;
    if (r == 2) return 1LL * n * (n - 1) % MOD * pw(2, MOD - 2) % MOD;
    if (r == 3) return 1LL * n * (n - 1) % MOD * (n - 2) % MOD * pw(6, MOD - 2) % MOD;
    if (r == 4) return 1LL * n * (n - 1) % MOD * (n - 2) % MOD * (n - 3) % MOD * pw(24, MOD - 2) % MOD;
    exit(1);
}

int w, h;

int main() {
    scanf("%d%d", &w, &h);
    int curr = 1LL * ncr(h, 2) * ncr(w, 2) % MOD;
    curr = 1LL * curr * curr % MOD;
    curr = (curr + MOD -  1LL * ncr(h, 2) % MOD * ncr(w, 2) % MOD) % MOD;
    curr = (curr + MOD - 36LL * ncr(h, 3) % MOD * ncr(w, 3) % MOD) % MOD;
    curr = (curr + MOD - 14LL * ncr(h, 4) % MOD * ncr(w, 4) % MOD) % MOD;
    curr = (curr + MOD - 24LL * ncr(h, 4) % MOD * ncr(w, 3) % MOD) % MOD;
    curr = (curr + MOD - 24LL * ncr(h, 3) % MOD * ncr(w, 4) % MOD) % MOD;
    curr = (curr + MOD -  4LL * ncr(h, 4) % MOD * ncr(w, 2) % MOD) % MOD;
    curr = (curr + MOD -  4LL * ncr(h, 2) % MOD * ncr(w, 4) % MOD) % MOD;
    curr = (curr + MOD -  6LL * ncr(h, 3) % MOD * ncr(w, 2) % MOD) % MOD;
    curr = (curr + MOD -  6LL * ncr(h, 2) % MOD * ncr(w, 3) % MOD) % MOD;
    curr = 1LL * curr * pw(2, MOD - 2) % MOD;
    printf("%d\n", curr);
}

詳細信息

Test #1:

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

input:

4 5

output:

275

result:

ok 1 number(s): "275"

Test #2:

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

input:

723435135 239873451

output:

832099301

result:

ok 1 number(s): "832099301"

Test #3:

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

input:

10348683 1000000000

output:

959472414

result:

ok 1 number(s): "959472414"

Test #4:

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

input:

1000000000 886687075

output:

994294391

result:

ok 1 number(s): "994294391"

Test #5:

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

input:

238133469 977550485

output:

181382226

result:

ok 1 number(s): "181382226"

Test #6:

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

input:

895943525 1000000000

output:

574248092

result:

ok 1 number(s): "574248092"

Test #7:

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

input:

1000000000 772281920

output:

2306050

result:

ok 1 number(s): "2306050"

Test #8:

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

input:

123728314 859786182

output:

722858859

result:

ok 1 number(s): "722858859"

Test #9:

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

input:

76505681 1000000000

output:

94904116

result:

ok 1 number(s): "94904116"

Test #10:

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

input:

1000000000 952844073

output:

632222340

result:

ok 1 number(s): "632222340"

Test #11:

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

input:

599257776 36989190

output:

592333335

result:

ok 1 number(s): "592333335"

Test #12:

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

input:

257067834 1000000000

output:

520152555

result:

ok 1 number(s): "520152555"

Test #13:

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

input:

1000000000 133406229

output:

769022397

result:

ok 1 number(s): "769022397"

Test #14:

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

input:

484852621 919224885

output:

829749309

result:

ok 1 number(s): "829749309"

Test #15:

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

input:

437629987 1000000000

output:

388969627

result:

ok 1 number(s): "388969627"

Test #16:

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

input:

1000000000 313968382

output:

471013029

result:

ok 1 number(s): "471013029"

Test #17:

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

input:

665414774 326352585

output:

424688776

result:

ok 1 number(s): "424688776"

Test #18:

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

input:

1000000000 1000000000

output:

656213933

result:

ok 1 number(s): "656213933"

Test #19:

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

input:

4 4

output:

71

result:

ok 1 number(s): "71"

Test #20:

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

input:

4 1000000000

output:

946327704

result:

ok 1 number(s): "946327704"

Test #21:

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

input:

1000000000 4

output:

946327704

result:

ok 1 number(s): "946327704"