만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Move or Block!

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

요약
N칸짜리 일차원 보드에서 말을 옮기거나 벽을 세우는 게임의 승자를 구합니다.
난이도

보통10점 중 6점

유형
게임 이론, 수학
정답자
아직 제출이 없습니다

문제

「Move or Block!」 게임은 NN칸의 일자형 게임보드에서 진행하는 22인용 보드게임이다. 게임보드의 각 칸은 비어 있거나 벽이 세워져 있다. 비어 있는 칸 중 하나에 말을 올려두고 게임을 시작하며, 두 플레이어가 턴을 번갈아 진행한다.

자신의 턴이 되었을 때 말의 인접한 칸에 모두 벽이 세워져 있으면 그 플레이어는 패배한다. 그렇지 않다면 아래 두 행동 중 하나를 골라 한 번 플레이하고 턴을 넘긴다.

  • 말을 비어 있는 인접한 칸 중 하나로 움직인다.
  • 비어 있는 칸을 하나 골라 벽을 세운다.

민규와 윤수가 이 게임을 한다. 주어진 게임보드에서 두 플레이어가 모두 최적의 방법으로 진행했을 때 이기는 플레이어를 출력한다. 게임은 민규가 먼저 시작한다.

입력

첫 번째 줄에 게임보드의 크기 NN이 주어진다.

두 번째 줄에는 초기 게임보드의 상태를 나타내는 길이 NN인 문자열이 주어진다. 문자열은 ., X, O 세 문자로만 이루어져 있으며, 각각 비어 있는 칸, 벽이 세워진 칸, 말이 올려진 칸을 뜻한다.

출력

민규가 이기면 mingyu, 윤수가 이기면 yunsu, 게임이 영원히 끝나지 않으면 draw를 출력한다.

제한

  • 2≤N≤1 000 0002 \le N \le 1\,000\,000
  • 입력으로 주어지는 NN은 정수이다.
  • 말은 게임보드에 정확히 하나만 존재한다.
  • 말의 인접한 칸에 모두 벽이 세워져 있는 경우는 입력으로 주어지지 않는다.

예제2

  1. 예제 1

    입력
    3
    .O.
    
    예상 출력
    yunsu
    
  2. 예제 2

    입력
    3
    O.X
    
    예상 출력
    mingyu