結果
| 問題 | No.353 ヘイトプラス | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 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 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 7 | 
ソースコード
## 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()
            
            
            
        