結果

問題 No.2545 Divide by 3
ユーザー suisensuisen
提出日時 2023-11-24 22:06:46
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 597 bytes
コンパイル時間 395 ms
コンパイル使用メモリ 81,700 KB
実行使用メモリ 56,140 KB
最終ジャッジ日時 2023-11-24 22:06:48
合計ジャッジ時間 1,347 ms
ジャッジサーバーID
(参考情報)
judge12 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

from random import randint


D = 1431655766


def f(X: int):
    T = [X, 1] + [0] * 98

    def p(i, j, k):
        print(f'plus {i} {j} {k}')
        T[i - 1] = T[j - 1] + T[k - 1]
    
    def d(i, j):
        print(f'div {i} {j}')
        T[i - 1] = T[j - 1] >> 1
    
    offa = 4
    p(offa, offa, 1)
    for i in range(1, 31):
        p(offa + i, offa + i - 1, offa + i - 1)
    
    posa = 3

    for bit in range(31):
        if (D >> bit) & 1:
            p(posa, posa, offa + bit)
    
    for _ in range(32):
        d(posa, posa)
    
    assert T[2] == X // 3

f(randint(0, 10 ** 9))
0