ABC解説 Edit

【pythonでABC213を解説】A - Bitwise Exclusive Or

問題概要

問題ページ

A - Bitwise Exclusive Or
A - Bitwise Exclusive Or

問題ページへ移動する

問題文

\(0\) 以上 \(255\) 以下の整数 \(A,B\) が与えられます。 \(A \text{ xor }C=B\) となる \(0\) 以上の整数 \(C\) を求めてください。

なお、そのような \(C\) はただ \(1\) つ存在し、\(0\) 以上 \(255\) 以下であることが証明されます。

\(\text{ xor }\) とは

整数 \(a, b\) のビットごとの排他的論理和 \(a \text{ xor } b\) は、以下のように定義されます。

  • \(a \text{ xor } b\) を二進表記した際の \(2^k\) (\(k \geq 0\)) の位の数は、\(a, b\) を二進表記した際の \(2^k\) の位の数のうち一方のみが \(1\) であれば \(1\)、そうでなければ \(0\) である。

例えば、\(3 \text{ xor } 5 = 6\) となります (二進表記すると: \(011 \text{ xor } 101 = 110\))。

制約

  • \(0\leq A,B \leq 255\)
  • 入力に含まれる値は全て整数である

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    a, b = list(map(int, input().rstrip('\n').split()))
    for i in range(256):
        if a ^ i == b:
            print(i)
            exit()


if __name__ == '__main__':
    solve()

-ABC解説, Edit
-