바둑
시간 제한1초메모리 제한128 MB
여러 테스트 케이스의 바둑판에서 빈 영역을 flood fill로 나누고, 각 영역에 인접한 돌의 색으로 흑 또는 백의 집을 판정해 점수를 세고 승자를 출력한다.
문제
바둑에서 두 명의 플레이어는 격자의 격자점 위에 검은 돌과 흰 돌을 번갈아 놓으며, 각자 가능한 한 넓은 집(즉, 비어 있는 격자점들의 영역)을 둘러싸려고 합니다. 게임이 끝나면 각 플레이어의 점수는 자신의 돌로 둘러싼 집의 전체 넓이가 됩니다. 대국이 끝난 시점의 검은 돌과 흰 돌의 위치가 주어질 때, 각 플레이어의 점수를 계산하여 승자를 판정하세요.
형식적으로, 두 격자점 와 는 일 때 인접합니다. 비어 있는 격자점들로 이루어진 연결된 영역은, 그 영역에 인접한 돌이 놓인 모든 격자점이 한 플레이어의 돌만 담고 있을 때 그 플레이어의 집이 됩니다(그림 1 참고). 플레이어의 점수는 자신의 집에 속한 빈 격자점의 개수입니다.

그림 1: 바둑판. 검은색 집에 속한 빈 격자점은 B, 흰색 집에 속한 빈 격자점은 W로 표시했습니다. 어느 쪽에도 속하지 않는 중립 격자점은 표시하지 않았습니다. 위 그림에서는 흰색이 점 차로 이깁니다.
참고: 여기서 정의한 점수 계산은 실제 바둑과 정확히 일치하지는 않습니다. 모든 분쟁이 이미 정리되어, 각 집이 한 가지 색의 돌로만 둘러싸여 있다고 가정합니다.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 세 줄로 구성됩니다.
- 첫째 줄에는 세 정수 (), , (, , )가 주어집니다. 각각 바둑판의 크기, 검은 돌의 개수, 흰 돌의 개수입니다.
- 둘째 줄에는 검은 돌의 위치를 나타내는 개의 정수 쌍 ()가 주어집니다.
- 셋째 줄에는 흰 돌의 위치를 나타내는 개의 정수 쌍 ()가 주어집니다.
같은 격자점에 두 개 이상의 돌이 놓이는 경우는 없습니다. 또는 이면 해당 줄은 비어 있습니다. 입력은 하나만 있는 줄로 끝나며, 이 줄은 처리하지 않습니다.
출력
각 테스트 케이스마다 한 줄을 출력합니다. 두 점수의 차이(양수)를 라고 할 때, 흰색이 이기면 White wins by X, 검은색이 이기면 Black wins by X를 출력하고, 두 점수가 같으면 Draw를 출력합니다.