카드 게임

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

요약
앨리스가 공격과 수비 중 역할을 고르는 인터랙티브 게임으로, 최대 10장을 뒤집어 같은 색 세 장의 수가 XOR 0이 되도록 찾아야 한다.
난이도

어려움10점 중 8점

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

문제

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

LL 이상 RR 이하인 서로 다른 정수가 앞면에 하나씩 적힌 카드 R−L+1R-L+1장이 있다. 카드의 뒷면에는 아무것도 적혀있지 않다. 앨리스와 밥은 이 카드로 게임을 한다. 이때 한 명은 공격 측, 다른 한 명은 수비 측을 맡는다.

  • 수비: 먼저 수비 측은 각 카드의 뒷면을 파란색 또는 빨간색 중 하나로 칠한다. 색칠이 끝나면 모든 카드를 앞면이 보이게 펼쳐 놓는다. 공격 측은 각 카드가 어느 색으로 칠해져 있는지 알 수 없다.
  • 공격: 공격 측은 놓인 카드 중 원하는 것을 몇 장 골라 뒤집어 칠해진 색깔을 확인한다. 이때 뒤집을 수 있는 카드는 최대 10장이다.

이후 공격 측이 뒤집은 카드들 중에서, 아래 두 조건을 모두 만족하는 서로 다른 세 장의 카드를 찾을 수 있다면 공격 측이 승리한다.

  • 세 카드의 뒷면 색깔이 모두 같다.
  • 세 카드의 앞면에 적힌 숫자를 각각 x,y,zx, y, z라고 할 때, x⊕y⊕z=0x\oplus y\oplus z=0을 만족한다. ⊕\oplus는 Bitwise XOR 연산자이다.

찾지 못했다면 수비 측이 승리한다.

밥은 앨리스에게 공격과 수비 중 원하는 역할을 선택할 기회를 주었다. 이때 앨리스가 이길 수 있는 전략을 구현해보자. 그런 전략이 항상 존재함을 보일 수 있다.

힌트

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

예제2

  1. 예제 1

    입력
    1 4
    
    예상 출력
    
    defense
    RBRB
    
  2. 예제 2

    입력
    1 10
    
    
    R
    
    B
    
    B
    
    R
    
    B
    
    예상 출력
    
    attack
    ? 3
    
    ? 7
    
    ? 5
    
    ? 4
    
    ? 2
    
    ! 2 5 7