結果

問題 No.3462 Buttons
コンテスト
ユーザー hikikomori
提出日時 2026-02-19 18:05:43
言語 PyPy2
(7.3.20)
コンパイル:
pypy2 -m py_compile _filename_
実行:
/usr/bin/pypy2 Main.pyc
結果
AC  
実行時間 367 ms / 2,000 ms
コード長 1,344 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 720 ms
コンパイル使用メモリ 73,344 KB
実行使用メモリ 94,888 KB
最終ジャッジ日時 2026-02-28 13:09:11
合計ジャッジ時間 8,153 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