結果
問題 | No.2409 Strange Werewolves |
ユーザー |
![]() |
提出日時 | 2023-08-11 21:54:27 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 309 ms / 2,000 ms |
コード長 | 1,222 bytes |
コンパイル時間 | 226 ms |
コンパイル使用メモリ | 82,228 KB |
実行使用メモリ | 249,088 KB |
最終ジャッジ日時 | 2024-11-18 16:07:47 |
合計ジャッジ時間 | 6,146 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
#############################################################import syssys.setrecursionlimit(10**7)from heapq import heappop,heappushfrom collections import deque,defaultdict,Counterfrom bisect import bisect_left, bisect_rightfrom itertools import product,combinations,permutationsfrom math import sin,cos#from math import isqrt #DO NOT USE PyPyipt = sys.stdin.readlineiin = lambda :int(ipt())lmin = lambda :list(map(int,ipt().split()))MOD = 998244353#############################################################K = 10**6factorial = [1, 1]inverse = [1, 1]invere_base = [0, 1]for i in range(2, K + 1):factorial.append((factorial[-1] * i) % MOD)invere_base.append((-invere_base[MOD % i] * (MOD // i)) % MOD) #逆元inverse.append((inverse[-1] * invere_base[-1]) % MOD) #階乗逆元#combinationdef nCr(n, r):if (r < 0 or r > n):return 0r = min(r, n - r)return factorial[n] * inverse[r] % MOD * inverse[n - r] % MODdef nPr(n,r):if (r < 0 or r > n):return 0return factorial[n] * inverse[n-r] % MODX,Y,Z,W = lmin()if Z == 0:print(nCr(X+Y-W-1,X-1)*nPr(X,X)*nPr(Y,Y-W)%MOD)else:print(nCr(X-Z+Y-1,Y-1)*nPr(Y,Y)*nPr(X,X-Z)%MOD)