인터랙티브 XOR 게임

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

요약
0부터 1023까지 적힌 카드로 진행되는 인터랙티브 게임에서 누가 선공일지와 승점 계산법을 정한 뒤 최적으로 플레이해 최대 승점을 얻는다.
난이도

어려움10점 중 9점

유형
게임 이론, 비트 연산, 수학, 구현
정답자
아직 제출이 없습니다

문제

이 문제는 인터랙티브 문제입니다.

한양대학교의 KIZIN LAB에서 2025년에 발매한 게임 "인터랙티브 XOR 게임"의 규칙은 다음과 같다.

게임을 시작하기 전, 당신은 누가 선공으로 플레이할지와 게임의 승점을 어떻게 계산할지 결정한다. 승점을 계산하는 방식은 아래에서 설명한다.

  • 선공부터 시작하여 선공과 후공이 번갈아가며 차례를 가진다.
  • 게임을 시작할 때 00부터 10231023까지의 정수가 하나씩 적힌 10241024장의 카드를 나열한다.
  • 자신의 차례에는 아무도 가져가지 않은 카드 중 하나를 가져가야 한다. 무슨 카드를 가져가는지는 상대에게도 보인다.
  • 선공과 후공이 각각 NN장의 카드를 가져가면 게임이 종료되며 승점 계산이 시작된다.

승점은 max와 min이라는 두 가지 방법으로 계산할 수 있다.

두 플레이어가 가져간 2N2N장의 카드에 적힌 값을 모두 XOR한 값을 TT라고 하자. 승점 계산 방식이 max라면 승점은 TT이고, 승점 계산 방식이 min이라면 승점은 1023−T1023-T이다.

당신은 채점 프로그램과 "인터랙티브 XOR 게임"을 플레이해야 한다.

당신은 당신이 얻을 수 있는 최대 승점을 얻도록 누가 선공으로 플레이할지와 승점을 어떻게 계산할지를 정한 후, 얻을 수 있는 최대 승점을 얻어야 한다.

힌트

위 예시는 입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해 의도적으로 개행 간격 등을 조절한 것으로 실제 입출력과는 다르다.

예제2

  1. 예제 1

    입력
    2
    
    
    1
    
    3
    
    예상 출력
    
    first min
    0
    
    2
    
    
  2. 예제 2

    입력
    2
    
    0
    
    2
    
    
    예상 출력
    
    second min
    
    1
    
    3