오델로

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

오델로(리버시라고도 함)는 $8 \times 8$ 판에서 하는 게임이다. 각 칸은 행과 열로 나타내며, 맨 위 행이 1행, 맨 왼쪽 열이 1열이다. 돌은 한 면이 검은색, 다른 면이 흰색이며, 한 사람은 검은 면을, 다른 사람은 흰 면을 위로 오게 하여 돌을 놓는다.

게임은 판 위에 이미 몇 개의 돌이 놓인 상태에서 시작한다.

다음 두 조건을 모두 만족할 때 그 수는 유효하다.

  1. 돌은, 판 위에 이미 놓인 어떤 돌과 가로·세로·대각선으로 인접한 빈 칸에 놓아야 한다.
  2. 상대의 돌을 하나 이상 뒤집어야 한다. 돌을 놓은 뒤 여덟 방향(가로·세로·대각선)을 각각 바깥쪽으로 살핀다. 어떤 방향으로 상대 돌이 끊김 없이 이어지고 그 끝을 내 돌이 막고 있으면, 그 사이의 상대 돌을 모두 내 색으로 뒤집는다. 내 돌을 만나기 전에 빈 칸이나 판의 경계에 도달하면 그 방향에서는 아무것도 뒤집지 않는다.

항상 검은색이 먼저 두고, 이후 흰색·검은색·흰색 순으로 번갈아 둔다. 주어진 수들을 순서대로 시뮬레이션한 뒤, 판에 남은 검은 돌과 흰 돌의 개수를 각각 구하라.

입력

입력은 세 부분으로 이루어진다.

먼저 초기 판의 배치를 나타내는 문자 하나(a, b, c 중 하나)가 주어진다.

  • 배치 a: 오델로의 표준 시작 배치. (4,4)와 (5,5)는 흰색, (4,5)와 (5,4)는 검은색이다.
  • 배치 b: 주대각선 칸 (1,1), (2,2), …, (8,8)이 모두 검은색이고, 반대각선 칸 (1,8), (2,7), …, (8,1)이 모두 흰색이다.
  • 배치 c: 3열과 4열의 모든 칸이 검은색, 5열과 6열의 모든 칸이 흰색이다(8개 행 전부).
배치 a배치 b배치 c

다음으로 시뮬레이션할 수의 개수를 나타내는 정수 $n$($0 \le n \le 30$)이 주어진다. 이어서 $n$개의 정수 쌍 $R$ $C$($1 \le R \le 8$, $1 \le C \le 8$)가 순서대로 주어지며, $R$은 행, $C$는 열을 나타낸다.

첫 번째 수는 검은색, 두 번째 수는 흰색, 세 번째 수는 다시 검은색 순이다. 나열된 모든 수는 빈 칸에 두는 유효한 수임이 보장된다.

출력

모든 수를 둔 뒤 판 위의 검은 돌의 개수와 흰 돌의 개수를 공백 하나로 구분하여 출력한다.