結果
問題 | No.2141 Enumeratest |
ユーザー |
|
提出日時 | 2022-12-03 01:31:10 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 28 ms / 2,000 ms |
コード長 | 579 bytes |
コンパイル時間 | 1,953 ms |
コンパイル使用メモリ | 192,476 KB |
最終ジャッジ日時 | 2025-02-09 04:37:26 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; ll const m = 998244353; ll mpow(ll a, ll n) { ll ret = 1; while (n) { if (n & 1) { ret *= a; ret %= m; } a = (a * a) % m; n >>= 1; } return ret; } ll fct(ll a) { return (a ? (a * fct(a - 1)) % m : 1); } int main () { ll N, M; cin >> N >> M; ll ans = fct(M); ll q = M / N, r = M % N; ans *= mpow(fct(q + 1), m - 1 - r); ans %= m; ans *= mpow(fct(q), m - 1 - (N - r)); ans %= m; cout << ans << endl; }