๐Ÿšง This website is under construction. ๐Ÿšง
AtCoder
ABC
171
E

ABC
E
XOR

ABC171 E - Red Scarf

https://atcoder.jp/contests/abc171/tasks/abc171_e (opens in a new tab)

่Œถ่‰ฒไธŠไฝใ€‚XOR

ไธŽใˆใ‚‰ใ‚ŒใŸ aia_i ใฏๆฌกใฎใ‚ˆใ†ใซ่กจ็พใงใใ‚‹ใ€‚

x2โŠ•x3โŠ•x4โŠ•...โŠ•xn=a1x_2 \oplus x_3\oplus x_4\oplus ...\oplus x_n=a_1 x1โŠ•x3โŠ•x4โŠ•...โŠ•xn=a2x_1 \oplus x_3\oplus x_4\oplus ...\oplus x_n=a_2 :: x1โŠ•x2โŠ•x3โŠ•...โŠ•xnโˆ’1=anx_1 \oplus x_2\oplus x_3\oplus ...\oplus x_{n-1}=a_n

่พบใ€…ใ‚’ XOR ใ™ใ‚‹ใจใ€ x1โŠ•x1โŠ•...โŠ•x1โŠ•x2โŠ•x2โŠ•...โŠ•x2โŠ•...โŠ•xnโŠ•xn...โŠ•xn=a1โŠ•a2โŠ•...โŠ•xnx_1\oplus x_1\oplus ...\oplus x_1\oplus x_2\oplus x_2\oplus ...\oplus x_2\oplus ...\oplus x_n\oplus x_n ... \oplus x_n=a_1\oplus a_2\oplus ...\oplus x_n ใŒๅพ—ใ‚‰ใ‚Œใ€ๅˆถ็ด„ใ‚ˆใ‚Šใ€ๅ„ xix_i ใฏ Nโˆ’1N-1 ๅ€‹ใฎๅฅ‡ๆ•ฐๅ€‹ๅญ˜ๅœจใ™ใ‚‹ใฎใงใ€ x1โŠ•x2โŠ•...โŠ•xn=a1โŠ•a2โŠ•...โŠ•anx_1\oplus x_2\oplus...\oplus x_n=a_1\oplus a_2\oplus...\oplus a_n ใจใชใ‚‹ใ€‚

ใ“ใ“ใง A=a1โŠ•a2โŠ•...โŠ•anA=a_1\oplus a_2\oplus ...\oplus a_n ใจใ™ใ‚‹ใ€‚

ไธŠใฎ aia_i ใฎๅผใ‚’้ †ใซๅŠ ใˆใ‚‹ใจใ€ x1โŠ•x2โŠ•...โŠ•xnโŠ•x2โŠ•x3โŠ•...โŠ•xn=AโŠ•a1x_1\oplus x_2\oplus...\oplus x_n \oplus x_2\oplus x_3\oplus...\oplus x_n=A \oplus a_1 xiโŠ•xi=0x_i\oplus x_i=0 ใ‚’ๅˆฉ็”จใ™ใ‚‹ใจไธŠๅผใฏใ€ x1=AโŠ•a1x_1=A\oplus a_1 ใจ x1x_1 ใ‚’ๆฑ‚ใ‚ใ‚‹ไบ‹ใŒๅ‡บๆฅใ‚‹ใ€‚ไป–ใฎ xix_i ใ‚‚ๅŒๆง˜ใซใ—ใฆๆฑ‚ใพใ‚‹ใ€‚

import functools
import operator
 
n = int(input())
a = list(map(int, input().split()))
 
x = functools.reduce(operator.xor, a)
 
for e in a:
    print(x ^ e)
 

่ฃœ่ถณ: XOR ใฎๆ€ง่ณช ๅฏๆ› xโŠ•y=yโŠ•xx\oplus y=y\oplus x ๅถๆ•ฐๅ€‹่ถณใ™ใจ 0 ใซใชใ‚‹ ๅฅ‡ๆ•ฐๅ€‹่ถณใ™ใจๅ…ƒใซๆˆปใ‚‹