結果
問題 | No.2141 Enumeratest |
ユーザー | とりゐ |
提出日時 | 2022-12-02 21:47:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 411 ms / 2,000 ms |
コード長 | 439 bytes |
コンパイル時間 | 362 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 138,496 KB |
最終ジャッジ日時 | 2024-10-09 22:57:10 |
合計ジャッジ時間 | 13,690 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
mod=998244353 M=(10**6)*3+1 fac=[1]*M ninv=[1]*M finv=[1]*M for i in range(2,M): fac[i]=fac[i-1]*i%mod ninv[i]=(-(mod//i)*ninv[mod%i])%mod finv[i]=finv[i-1]*ninv[i]%mod def binom(n,k): if n<0 or k<0: return 0 if k>n: return 0 return (fac[n]*finv[k]%mod)*finv[n-k]%mod n,m=map(int,input().split()) res=1 a=[m//n]*n for i in range(m%n): a[i]+=1 rem=m for i in a: res*=binom(rem,i) res%=mod rem-=i print(res)