結果
問題 | No.1186 長方形の敷き詰め |
ユーザー |
|
提出日時 | 2021-02-18 01:01:01 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
AC
|
実行時間 | 21 ms / 2,000 ms |
コード長 | 777 bytes |
コンパイル時間 | 2,502 ms |
コンパイル使用メモリ | 146,584 KB |
実行使用メモリ | 19,568 KB |
最終ジャッジ日時 | 2024-09-16 11:27:34 |
合計ジャッジ時間 | 3,357 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
const mod: int :: 998244353 const kMax: int :: 1000000 var fact: []int var inv: []int func main() do @fact :: #[@kMax + 1]int do @inv :: #[@kMax + 1]int var n: int :: cui@inputInt() var m: int :: cui@inputInt() var ans: int :: 0 if(n = 1) do ans :: 1 else var x: int :: m / n for i(0, x) do ans :+ comb(m - i * (n - 1), m - n * i) do ans :% @mod end for end if do cui@print("\{ans}\n") func comb(n: int, r: int): int if(@fact[0] = 0) do @fact[0] :: 1 for i(1, @kMax) do @fact[i] :: @fact[i - 1] * i % @mod end for do @inv[@kMax] :: math@modPow(@fact[@kMax], @mod - 2, @mod) for i(@kMax, 1, -1) do @inv[i - 1] :: @inv[i] * i % @mod end for end if ret @fact[n] * @inv[n - r] % @mod * @inv[r] % @mod end func end func