結果
| 問題 |
No.2141 Enumeratest
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-05-10 00:02:46 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 29 ms / 2,000 ms |
| コード長 | 576 bytes |
| コンパイル時間 | 12,056 ms |
| コンパイル使用メモリ | 246,616 KB |
| 実行使用メモリ | 18,148 KB |
| 最終ジャッジ日時 | 2025-05-10 00:03:01 |
| 合計ジャッジ時間 | 14,188 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 34 |
ソースコード
package main
import . "fmt"
import . "math/big"
func main() {
var n, m int
Scan(&n,&m)
if n == 1 {
Println(1)
return
}
const V = 1e6
const Mod = 998244353
a := make([]int, V+1)
a[0] = 1
for i := range a[1:] {
a[i+1] = a[i]*(i+1)%Mod
}
b := make([]int, V+1)
z := new(Int).ModInverse(NewInt(int64(a[V])), NewInt(Mod))
b[V] = int(z.Int64())
for i := range b[1:] {
j := V - i
b[j-1] = b[j]*j%Mod
}
d := m / n
ans := a[m]
for i := 0; i < n; i++ {
if i < m % n {
ans = ans * b[d+1] % Mod
} else {
ans = ans * b[d] % Mod
}
}
Println(ans)
}
ID 21712