結果
| 問題 | No.3584 Camouflage Mole |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-30 08:23:39 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 63 ms / 2,000 ms |
| コード長 | 984 bytes |
| 記録 | |
| コンパイル時間 | 230 ms |
| コンパイル使用メモリ | 96,236 KB |
| 実行使用メモリ | 79,028 KB |
| 最終ジャッジ日時 | 2026-07-10 20:56:27 |
| 合計ジャッジ時間 | 4,339 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 37 |
ソースコード
import sys
def solve():
# 入力の読み込み
input_data = sys.stdin.read().split()
if not input_data:
return
N = int(input_data[0])
MOD = 998244353
# Nが4未満の場合は "mole" を作れないので 0
if N < 4:
print(0)
return
# 1. N箇所から "mole" を配置する4箇所を選ぶ組み合わせ: N C 4
# 分子: N * (N-1) * (N-2) * (N-3)
num = (N * (N - 1) * (N - 2) * (N - 3)) % MOD
# 分母: 4! = 24
den = 24
# フェルマーの小定理を用いて分母の逆元を求める
inv_den = pow(den, MOD - 2, MOD)
# 組み合わせの数 (N C 4) % MOD
comb = (num * inv_den) % MOD
# 2. 残りの (N-4) 文字は 26種類のアルファベットのどれでも良い: 26^(N-4)
power = pow(26, N - 4, MOD)
# 3. 答えを掛け合わせて MOD をとる
ans = (comb * power) % MOD
print(ans)
if __name__ == '__main__':
solve()