結果
問題 |
No.2409 Strange Werewolves
|
ユーザー |
![]() |
提出日時 | 2025-05-04 16:12:52 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 11 ms / 2,000 ms |
コード長 | 591 bytes |
コンパイル時間 | 12,455 ms |
コンパイル使用メモリ | 246,892 KB |
実行使用メモリ | 12,000 KB |
最終ジャッジ日時 | 2025-05-04 16:13:06 |
合計ジャッジ時間 | 13,872 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 |
ソースコード
package main import . "fmt" import . "math/big" func main() { const Mod = 998244353 var x, y, z, w int Scan(&x, &y, &z, &w) m := x+y n := make([]int, m+1) n[0] = 1 for i := range n[1:] { n[i+1] = n[i]*(i+1)%Mod } d := make([]int, m+1) d[m] = int(new(Int).ModInverse(NewInt(int64(n[m])), NewInt(Mod)).Int64()) for i := range d[1:] { j := m - i d[j-1] = d[j]*j%Mod } // なんかサンプルは合うが、理屈わかってない e := (x - z) + (y - w) ans := (n[x]*d[z]%Mod)* (n[y]*d[w]%Mod)%Mod* (n[e-1]*d[x-max(1,z)]%Mod*d[y-max(1,w)]%Mod)%Mod Println(ans) }