結果
問題 | No.2381 Gift Exchange Party |
ユーザー |
|
提出日時 | 2023-07-14 23:01:53 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 307 ms / 2,000 ms |
コード長 | 1,086 bytes |
コンパイル時間 | 721 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 250,112 KB |
最終ジャッジ日時 | 2024-09-16 08:09:56 |
合計ジャッジ時間 | 6,332 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
import syssys.setrecursionlimit(5*10**5)input = sys.stdin.readlinefrom collections import defaultdict, deque, Counterfrom heapq import heappop, heappushfrom bisect import bisect_left, bisect_rightfrom math import gcdn,p = map(int,input().split())all = 1mod = 998244353for i in range(1,n+1):all *= iall %= modif p > n:print(all-1)exit()e = 1for i in range(1, p):e *= ie %= mod# nCkdef com(n, mod):fact = [1, 1]factinv = [1, 1]inv = [0, 1]for i in range(2, n+1):fact.append((fact[-1]*i) % mod)inv.append((-inv[mod % i]*(mod//i)) % mod)factinv.append((factinv[-1]*inv[-1]) % mod)return fact, factinvf,fi = com(10**6, mod)def npr(n, r):if n < r:return 1return f[n] * fi[n-r] % moddef ncr(n, r):if n < r:return 1return f[n] * fi[n-r] % mod * fi[r] % mod# 長さ1とpのループしかないときmx = n//pnow = 1all -= 1for i in range(1,mx+1):now *= ncr(p*i,p)now *= enow %= modall -= ncr(n,p*i) * now * fi[i]all %= modprint(all)