結果

問題 No.3462 Buttons
コンテスト
ユーザー hikikomori
提出日時 2026-02-19 18:05:04
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 319 ms / 2,000 ms
コード長 1,344 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 459 ms
コンパイル使用メモリ 77,748 KB
実行使用メモリ 84,144 KB
最終ジャッジ日時 2026-02-28 13:09:19
合計ジャッジ時間 7,096 ms
ジャッジサーバーID
(参考情報)
judge7 / 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