바둑

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

요약
홀수 n×n 바둑판에서 합법적인 착수 순서가 주어질 때, 사석과 집 규칙을 적용해 흑과 백의 최종 점수를 계산한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 구현, BFS, 그래프
정답자
아직 제출이 없습니다

문제

바둑은 세로줄과 가로줄의 개수가 모두 홀수인 정사각형 판 위에서 둔다. 흔히 쓰는 크기는 9×9, 13×13, 19×19이지만, 여기서는 홀수 nn에 대해 3≤n≤193 \le n \le 19인 n×nn \times n 크기를 사용한다.

흑과 백은 줄이 만나는 교차점에 번갈아 돌을 놓으며, 흑이 먼저 둔다. 각 차례에 플레이어는 돌을 놓거나 한 번 쉴 수 있고, 두 플레이어가 연달아 쉬면 게임이 끝난다. 돌을 놓는 것은 P(x,y)P(x, y)로 나타내며, PP는 B(흑) 또는 W(백)이고 1−n2≤x,y≤n−12\frac{1-n}{2} \le x, y \le \frac{n-1}{2}가 교차점의 위치를 가리킨다. 판의 중앙 교차점은 (0,0)(0, 0)이다.

다음 규칙을 따른다.

  • 흑이 먼저 둔다.
  • 두 사람이 번갈아 두며, 각 차례에 돌을 놓거나 쉰다. 두 사람이 연속으로 쉬면 게임이 끝난다.
  • 돌은 비어 있는 교차점에만 놓을 수 있다.
  • 두 교차점은 가로 또는 세로로(대각선은 제외) 인접해 있을 때 서로 연결되어 있다고 한다. 어느 플레이어 P가 돌을 놓아, P의 돌들이 판의 가장자리와 함께 상대 Q의 연결된 돌 무리를 완전히 둘러싸면(즉 그 무리의 어떤 돌도 빈 교차점과 연결되지 않으면) 그 무리의 Q 돌은 모두 따내어져 판에서 제거된다.
  • P가 돌을 놓아 Q의 돌을 따낸 경우, P가 방금 놓은 돌은 따내지 않는다.
  • 경계가 오직 P의 돌로만 이루어지고 Q의 돌이 하나도 없는, 빈 교차점들의 연결된 영역은 P의 집(영역)이 된다.
  • 플레이어 P의 점수는 최종 판에서 P가 차지한 빈 교차점의 수에, 게임 중 어느 시점에든 P가 따낸 Q의 돌의 총 개수를 더한 값이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 판의 크기 nn과 게임 중 놓인 돌의 개수 mm을 담은 줄로 시작한다. 이어지는 mm개의 줄은 각각 위 형식으로 하나의 착점을 나타낸다. mm은 돌을 놓은 횟수만 센다는 점에 유의하라. 쉬는 경우가 있으므로 같은 플레이어가 연달아 두 번 둘 수도 있다. 모든 수는 규칙에 맞다고 가정해도 좋다. 마지막 테스트 케이스 다음에는 0 0만 있는 줄이 오며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 흑의 점수와 백의 점수를 공백으로 구분하여 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    7 6
    B(-2,-2)
    W(2,2)
    B(-2,-3)
    W(2,3)
    B(-3,-2)
    W(3,2)
    7 6
    B(-2,-3)
    W(-3,-3)
    B(-2,-2)
    W(3,2)
    B(-3,-2)
    W(2,3)
    0 0
    
    예상 출력
    1 1
    2 1
    
  2. 예제 2

    입력
    3 1
    B(0,0)
    0 0
    
    예상 출력
    8 0
    
  3. 예제 3

    입력
    3 3
    B(0,1)
    W(1,1)
    B(1,0)
    0 0
    
    예상 출력
    8 0