턴제 전략 XOR 게임

시간 제한1초메모리 제한1024 MB

요약
두 사람이 N-1 라운드 동안 각자 카드를 하나씩 내려놓으며, 건우는 최종 XOR 값을 최대화하고 준혁이는 최소화한다.
난이도

어려움10점 중 8점

유형
게임 이론, 비트 연산, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

건우와 준혁이는 정수가 쓰여진 카드를 각각 NN개씩 가지고 있다.

건우가 가진 카드에 쓰여진 정수는 A_1,A_2,…,A_NA\_1, A\_2, \ldots, A\_N이고 준혁이가 가진 카드에 쓰여진 정수는 B_1,B_2,…,B_NB\_1, B\_2, \ldots, B\_N이다. 서로 카드에 쓰여져 있는 정수를 볼 수 있다.

건우와 준혁이는 가진 카드로 XOR 게임을 한다. 각 라운드마다 다음 과정이 진행되며 총 N−1N-1번의 라운드를 진행한다. 가장 처음에 T=0T = 0이다.

  • 건우는 자신이 가진 카드 중 하나를 골라 내려놓는다.
  • 준혁이는 건우가 내려놓은 카드를 보고 자신이 가진 카드 중 하나를 골라 내려놓는다.
  • 두 사람 모두 한 번 내려놓은 카드는 다시 내려놓을 수 없다.
  • 건우가 내려놓은 카드의 수를 aa, 준혁이가 내려놓은 카드의 수를 bb라고 할 때, TT를 T⊕a⊕bT \oplus a \oplus b로 바꾼다.

이때 두 정수 xx와 yy에 대해 x⊕yx \oplus y 연산은 두 수의 XOR(exclusive OR)로 정의된다.

건우는 N−1N-1번의 라운드 이후 TT를 최대화하려고 하고, 준혁이는 최소화하려고 한다. 두 사람이 게임을 최선으로 진행하였을 때 N−1N-1번의 라운드 종료 이후 TT를 구하여라.

입력

첫째 줄에 NN이 주어진다. (1≤N≤300,000)(1 \le N \le 300\\,000)

둘째 줄에 A_1,A_2,…,A_NA\_1, A\_2, \ldots, A\_N가 공백으로 구분되어 주어진다. (0≤A_i≤109)(0 \le A\_i \le 10^9)

셋째 줄에 B_1,B_2,…,B_NB\_1, B\_2, \ldots, B\_N가 공백으로 구분되어 주어진다. (0≤B_i≤109)(0 \le B\_i \le 10^9)

출력

첫째 줄에 두 사람이 게임을 최선으로 진행하였을 때 N−1N-1번의 라운드 종료 이후 TT를 출력한다.

힌트

두 수의 XOR 연산은, 두 수를 이진수로 나타냈을 때 각 비트 자리에서 서로 다르면 11, 같으면 00이 되는 비트 연산이다. 예를 들어, 66과 44를 이진수로 나타내면 각각 110_(2)110\_{(2)}, 100_(2)100\_{(2)}이 되고, 두 수를 XOR한 값은 010_(2)010\_{(2)}으로 22가 된다.

예제1

  1. 예제 1

    입력
    3
    1 2 2
    4 4 2
    
    예상 출력
    3