結果

問題 No.2381 Gift Exchange Party
ユーザー tokugh
提出日時 2023-07-14 23:17:35
言語 Julia
(2.11.2)
結果
WA  
実行時間 -
コード長 692 bytes
コンパイル時間 334 ms
コンパイル使用メモリ 7,200 KB
実行使用メモリ 474,152 KB
最終ジャッジ日時 2024-10-01 17:27:58
合計ジャッジ時間 9,458 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 3 WA * 11 TLE * 8
権限があれば一括ダウンロードができます

ソースコード

diff #

toI(s=readline()) = parse(Int,s)
toVI(s=readline()) = toI.(split(s))

const MOD = 998244353
⊕(x,y) = mod(x+y,MOD)
⊖(x,y) = mod(x-y,MOD)
⊗(x,y) = mod(x*y,MOD)
⊘(x,y) = x⊗invmod(y,MOD)
↑(x,y) = powermod(x,y,MOD)

function main()
	n,p = toVI()
	solve(n,p) |> println
end

function solve(n,p)
	d,r = divrem(n,p)
	cnt = factmod(n)
	for d in 0:n÷p
		r = n - d*p
		cnt = cnt ⊖ combmod(n,r)⊗factmod(d*p)⊘factmod(p)↑d⊘factmod(d)⊗(factmod(p)-1)↑d
	end
	cnt
end

@generated function factmod(n)
	xs = zeros(Int,200001)
	xs[1] = 1
	for i in 1:200000
		xs[i+1] = xs[i]⊗i
	end
	return :($xs[n+1])
end

function combmod(n,r)
	factmod(n)⊘(factmod(r)⊗factmod(n-r))
end

main()
0