結果
| 問題 |
No.2113 Distance Sequence 1.5
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-03-26 15:57:16 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 40 ms / 2,000 ms |
| コード長 | 699 bytes |
| コンパイル時間 | 423 ms |
| コンパイル使用メモリ | 82,160 KB |
| 実行使用メモリ | 53,892 KB |
| 最終ジャッジ日時 | 2025-03-26 15:57:51 |
| 合計ジャッジ時間 | 2,318 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 |
ソースコード
MOD = 998244353
def pow_mod(a, b, mod):
a %= mod
res = 1
while b > 0:
if b % 2 == 1:
res = res * a % mod
a = a * a % mod
b //= 2
return res
def main():
import sys
N, M, K = map(int, sys.stdin.readline().split())
if K == 1:
print(M % MOD)
return
if K > M:
print(pow_mod(M, 2*N, MOD))
return
# Now 2 <= K <= M
term1 = (M - K + 1) % MOD
term2 = (pow_mod(K, 2*N, MOD) - pow_mod(K-1, 2*N, MOD)) % MOD
part1 = (term1 * term2) % MOD
t = K-1
part2 = pow_mod(t, 2*N, MOD)
ans = (part1 + part2) % MOD
print(ans)
if __name__ == '__main__':
main()
lam6er