結果

問題 No.3462 Buttons
コンテスト
ユーザー hikikomori
提出日時 2026-02-19 18:04:30
言語 Python3
(3.14.3 + numpy 2.4.2 + scipy 1.17.0)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 1,132 ms / 2,000 ms
コード長 1,344 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 544 ms
コンパイル使用メモリ 20,952 KB
実行使用メモリ 35,420 KB
最終ジャッジ日時 2026-02-28 13:09:14
合計ジャッジ時間 16,549 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline
def solve():
    T = int(input())
    out = []
    MOD = 998244353
    for _ in range(T):
        A, B, K = map(int, input().split())
        if A == 0:
            out.append(0)
            continue
        if A > 0:
            if B >= 2:
                ans = A * pow(B, K - 1, MOD)
                out.append(ans % MOD)
            elif B in (1, 0, -1):
                ans = K * A
                out.append(ans % MOD)
            else: 
                if K % 2 == 1:
                    ans = A * pow(B, K - 1, MOD)
                else:
                    ans = 2 * A * pow(B, K - 2, MOD)
                out.append(ans % MOD)
        else: 
            if B >= 0:
                out.append(0)
            elif B == -1:
                if K >= 2:
                    ans = (K - 1) * (-A)
                    out.append(ans % MOD)
                else:
                    out.append(0)
            else:
                if K == 1:
                    out.append(0)
                else:
                    if K % 2 == 0:
                        ans = A * pow(B, K - 1, MOD)
                    else:
                        ans = 2 * A * pow(B, K - 2, MOD)
                    out.append(ans % MOD)
                    
    print('\n'.join(map(str, out)))

if __name__ == '__main__':
    solve()
0