結果

問題 No.353 ヘイトプラス
ユーザー LyricalMaestroLyricalMaestro
提出日時 2024-10-20 18:07:01
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 53 ms / 1,000 ms
コード長 1,081 bytes
コンパイル時間 399 ms
コンパイル使用メモリ 82,428 KB
実行使用メモリ 53,940 KB
最終ジャッジ日時 2024-10-20 18:07:03
合計ジャッジ時間 2,053 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 38 ms
52,660 KB
testcase_01 AC 37 ms
53,416 KB
testcase_02 AC 37 ms
53,036 KB
testcase_03 AC 39 ms
53,940 KB
testcase_04 AC 44 ms
52,804 KB
testcase_05 AC 37 ms
52,468 KB
testcase_06 AC 37 ms
52,992 KB
testcase_07 AC 38 ms
52,804 KB
testcase_08 AC 53 ms
53,144 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

## https://yukicoder.me/problems/no/353


def main():
    A, B = map(int, input().split())
    
    a_array = []
    while A > 0:
        a_array.append(A % 2)
        A //= 2

    b_array =[]
    while B > 0:
        b_array.append(B % 2)
        B //=  2

    max_ab_len = max(len(a_array), len(b_array))

    carry_over = 0
    answer = []
    for i in range(max_ab_len):
        a = 0
        if i < len(a_array):
            a = a_array[i]
        b = 0
        if i < len(b_array):
            b = b_array[i]

        if a | b == 0:
            answer.append(carry_over)
            carry_over = 0
        elif a | b == 1 and a & b == 0:
            if carry_over == 0:
                answer.append(a ^ b)
            else:
                answer.append(0)
                carry_over = 1
        elif a & b == 1:
            answer.append(carry_over)
            carry_over = 1

    if carry_over == 1:
        answer.append(carry_over)

    ans = 0
    for a in reversed(answer):
        ans <<= 1
        ans ^= a
    print(ans)






if __name__ == "__main__":
    main()
0