結果
問題 | No.2409 Strange Werewolves |
ユーザー |
|
提出日時 | 2023-08-11 22:32:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 105 ms / 2,000 ms |
コード長 | 595 bytes |
コンパイル時間 | 488 ms |
コンパイル使用メモリ | 82,300 KB |
実行使用メモリ | 90,212 KB |
最終ジャッジ日時 | 2024-11-18 17:16:32 |
合計ジャッジ時間 | 2,166 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
x,y,z,w = map(int,input().split()) mod = 998244353 ### for bigger prime N = x+y+5 fact = [1]*N finv = [1]*N for i in range(2,N): fact[i] = (fact[i-1]*i)%mod finv[-1] = pow(fact[-1],mod-2,mod) for i in range(1,N)[::-1]: finv[i-1] = (finv[i]*i)%mod def nCr(n,r): if r > n: return 0 else: return fact[n]*finv[r]%mod*finv[n-r]%mod if z: x,y = y,x z,w = w,z ## z = 0 ans = nCr(y,y-w) * nCr(x+y-z-w,x) * fact[y-w] * fact[x] % mod for i in range(x-z,x+y-z-w): ans -= nCr(y,y-w) * nCr(i-1,x-1) * fact[y-w] * fact[x] % mod ans %= mod print(ans)