結果

問題 No.2326 Factorial to the Power of Factorial to the...
ユーザー uec20poke_Naauec20poke_Naa
提出日時 2023-05-29 02:24:35
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 1,342 bytes
コンパイル時間 2,123 ms
コンパイル使用メモリ 202,644 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-08 14:47:51
合計ジャッジ時間 2,915 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 WA -
testcase_02 AC 2 ms
6,940 KB
testcase_03 AC 3 ms
6,940 KB
testcase_04 WA -
testcase_05 AC 2 ms
6,940 KB
testcase_06 AC 2 ms
6,944 KB
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,940 KB
testcase_12 AC 2 ms
6,944 KB
testcase_13 WA -
testcase_14 AC 3 ms
6,944 KB
testcase_15 WA -
testcase_16 AC 2 ms
6,944 KB
testcase_17 WA -
testcase_18 WA -
testcase_19 AC 2 ms
6,940 KB
testcase_20 AC 2 ms
6,940 KB
testcase_21 AC 2 ms
6,940 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/modint>
#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define rep2(i, s, n) for(int i = (s); i < (int)(n); i++)
#define printYN(check) cout << ((check)? "Yes" : "No") << endl
#define NUM 998244353
#define IMAX INT_MAX
#define LMAX LONG_MAX
using namespace std;
using namespace atcoder;
// using mint = modint998244353;
using mint = modint1000000007;
using vi = vector<int>;
using vvi = vector<vi>;
using ll = long long;
using vl = vector<ll>;
using vvl = vector<vl>;
using vs = vector<string>;
using vb = vector<bool>;
using vvb = vector<vb>;
using pii = pair<int, int>;
using vpii = vector<pii>;
using tii = tuple<int, int, int>;
using mii = map<int, int>;
using Graph = vvi;
// Graph graph(n);
// vi dx = {-1, 0, 1, -1, 1, -1,  0, 1};
// vi dy = { 1, 1, 1,  0, 0, -1, -1,-1};
// snippet -> {UnionFind, dfs_reculsive, dfs_stack, is_prime, mypow, 
//              bfs_queue, digsum, binary_search, gcd, Dijkstra, bitsearch}
// -------------------------------------------------------------------------

int main() {
    ll n, p;
    cin >> n >> p;
    int q = p;
    mint num = 0;
    while(n >= q) {
        num += n / q;
        q *= p;
    }
    mint k = 1;
    rep2(i, 1, n+1) {
        k *= i;
    }
    k = k.pow(k.val());
    num = num * k;
    cout << num.val() << endl;
    return 0;
}
0