結果
問題 | No.2351 Butterfly in Summer |
ユーザー | Karan Aggarwal |
提出日時 | 2023-06-16 21:39:30 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,462 bytes |
コンパイル時間 | 838 ms |
コンパイル使用メモリ | 77,528 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-24 13:26:45 |
合計ジャッジ時間 | 1,498 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
// WEBLINK #include <iostream> #include <algorithm> #include <map> #include <set> #include <vector> #include <queue> using namespace std; using ll = long long; using ii = pair<int, int>; using iii = pair<ii, int>; using vi = vector<int>; using vvi = vector<vi>; using vll = vector<ll>; using vii = vector<ii>; #define pb push_back #define fst first #define snd second #define all(x) (x).begin,(x).end() // ---------- MOD -------------------- const int mod = 998244353; void add(int & x, int y) { x += y; if (x < 0) x += mod; if (x >= mod) x -= mod; } int add2(int x, int y) { x += y; if (x < 0) x += mod; if (x >= mod) x -= mod; return x; } int mul(int x, int y) {ll r = x; r *= y; return r % mod;} int power(int x, int p) { if (x < 0 or p < 0) return 0; int r = 1; while (p > 0) { if (p & 1) r = mul(r, x); x = mul(x, x); p /= 2; } return r; } int inv(int a) { return power(a, mod - 2); } template<typename T, typename T1>T amax(T &a, T1 b) {if (b > a)a = b; return a;} template<typename T, typename T1>T amin(T &a, T1 b) {if (b < a)a = b; return a;} // ---------- DEBUG -------------------- //#define ON_PC #ifdef ON_PC #include </Users/karanaggarwal/code/debug.h> #else #define deb(x...) #endif /////////////////////////////////// int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, k; cin >> n >> k; int num = mul(n, k - 1); int den = power(k, n - 1); cout << mul(num, inv(den)) << endl; return 0; }