턴제 전략 XOR 게임
시간 제한1초메모리 제한1024 MB
두 사람이 N-1 라운드 동안 각자 카드를 하나씩 내려놓으며, 건우는 최종 XOR 값을 최대화하고 준혁이는 최소화한다.
문제
건우와 준혁이는 정수가 쓰여진 카드를 각각 개씩 가지고 있다.
건우가 가진 카드에 쓰여진 정수는 이고 준혁이가 가진 카드에 쓰여진 정수는 이다. 서로 카드에 쓰여져 있는 정수를 볼 수 있다.
건우와 준혁이는 가진 카드로 XOR 게임을 한다. 각 라운드마다 다음 과정이 진행되며 총 번의 라운드를 진행한다. 가장 처음에 이다.
- 건우는 자신이 가진 카드 중 하나를 골라 내려놓는다.
- 준혁이는 건우가 내려놓은 카드를 보고 자신이 가진 카드 중 하나를 골라 내려놓는다.
- 두 사람 모두 한 번 내려놓은 카드는 다시 내려놓을 수 없다.
- 건우가 내려놓은 카드의 수를 , 준혁이가 내려놓은 카드의 수를 라고 할 때, 를 로 바꾼다.
이때 두 정수 와 에 대해 연산은 두 수의 XOR(exclusive OR)로 정의된다.
건우는 번의 라운드 이후 를 최대화하려고 하고, 준혁이는 최소화하려고 한다. 두 사람이 게임을 최선으로 진행하였을 때 번의 라운드 종료 이후 를 구하여라.
입력
첫째 줄에 이 주어진다.
둘째 줄에 가 공백으로 구분되어 주어진다.
셋째 줄에 가 공백으로 구분되어 주어진다.
출력
첫째 줄에 두 사람이 게임을 최선으로 진행하였을 때 번의 라운드 종료 이후 를 출력한다.
힌트
두 수의 XOR 연산은, 두 수를 이진수로 나타냈을 때 각 비트 자리에서 서로 다르면 , 같으면 이 되는 비트 연산이다. 예를 들어, 과 를 이진수로 나타내면 각각 , 이 되고, 두 수를 XOR한 값은 으로 가 된다.