Move or Block!
시간 제한1초메모리 제한1024 MB
N칸짜리 일차원 보드에서 말을 옮기거나 벽을 세우는 게임의 승자를 구합니다.
문제
「Move or Block!」 게임은 칸의 일자형 게임보드에서 진행하는 인용 보드게임이다. 게임보드의 각 칸은 비어 있거나 벽이 세워져 있다. 비어 있는 칸 중 하나에 말을 올려두고 게임을 시작하며, 두 플레이어가 턴을 번갈아 진행한다.
자신의 턴이 되었을 때 말의 인접한 칸에 모두 벽이 세워져 있으면 그 플레이어는 패배한다. 그렇지 않다면 아래 두 행동 중 하나를 골라 한 번 플레이하고 턴을 넘긴다.
- 말을 비어 있는 인접한 칸 중 하나로 움직인다.
- 비어 있는 칸을 하나 골라 벽을 세운다.
민규와 윤수가 이 게임을 한다. 주어진 게임보드에서 두 플레이어가 모두 최적의 방법으로 진행했을 때 이기는 플레이어를 출력한다. 게임은 민규가 먼저 시작한다.
입력
첫 번째 줄에 게임보드의 크기 이 주어진다.
두 번째 줄에는 초기 게임보드의 상태를 나타내는 길이 인 문자열이 주어진다. 문자열은 ., X, O 세 문자로만 이루어져 있으며, 각각 비어 있는 칸, 벽이 세워진 칸, 말이 올려진 칸을 뜻한다.
출력
민규가 이기면 mingyu, 윤수가 이기면 yunsu, 게임이 영원히 끝나지 않으면 draw를 출력한다.
제한
- 입력으로 주어지는 은 정수이다.
- 말은 게임보드에 정확히 하나만 존재한다.
- 말의 인접한 칸에 모두 벽이 세워져 있는 경우는 입력으로 주어지지 않는다.