結果

問題 No.3515 Anti EIKO
コンテスト
ユーザー Nakama Kazuki
提出日時 2026-06-27 21:21:00
言語 C++23
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 1,089 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,212 ms
コンパイル使用メモリ 147,044 KB
実行使用メモリ 7,972 KB
最終ジャッジ日時 2026-06-27 21:21:03
合計ジャッジ時間 3,053 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 3 WA * 28
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>

using namespace std;

// 繰り返し二乗法による高速べき乗計算 (x^n % mod)
long long power(long long x, long long n, long long mod) {
    long long res = 1;
    x %= mod;
    while (n > 0) {
        if (n & 1) res = (res * x) % mod;
        x = (x * x) % mod;
        n >>= 1;
    }
    return res;
}

// モジュラ逆数を求める (フェルマーの小定理)
long long modInverse(long long n, long long mod) {
    return power(n, mod - 2, mod);
}

int main() {
    // 高速入出力
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    long long N, K;
    if (!(cin >> N >> K)) return 0;

    const long long MOD = 998244353;

    // K が 4N 未満の場合は、どうやっても長さ 4N の指定文字列を作れないので確率は 0
    if (K < 4 * N) {
        cout << 0 << "\n";
        return 0;
    }

    // 5 の mod 998244353 における逆数を求める
    long long inv5 = modInverse(5, MOD);

    // 答えは (1/5)^(4N) % MOD
    long long ans = power(inv5, 4 * N, MOD);

    cout << ans << "\n";

    return 0;
}
0