아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

발명가 버티기

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

요약
두 사람이 번갈아 X 칸에 놀이기구를 세우고, 칸이 없어 두지 못하는 사람이 지는 게임에서 이기는 첫 수의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
게임 이론, 시뮬레이션, 행렬
정답자
아직 제출이 없습니다

문제

Izabella와 Olga는 번갈아 가며 새로운 게임을 합니다. 이 게임에서 두 사람은 놀이공원에서 일하는 놀이기구 발명가 역할을 맡습니다. 게임판은 놀이공원 지도를 나타내는 정사각형 칸들의 행렬입니다. 일부 칸은 새 놀이기구를 세우기에 알맞습니다.

놀이기구가 세워지면 이를 광고하는 표지판이 자동으로 추가됩니다. 대각선 네 방향으로 표지판 설치원 4명이 파견됩니다. 북동쪽으로 가는 설치원은 다음과 같이 움직입니다. 놀이기구를 세운 칸에서 출발해 현재 칸의 북동쪽 칸을 확인합니다. 그 칸이 없거나 이미 차 있으면 멈춥니다. 그렇지 않으면 그 칸으로 이동해 표지판을 세우고 같은 과정을 반복합니다. 북서쪽, 남동쪽, 남서쪽으로 가는 설치원도 진행 방향만 다를 뿐 같은 방식으로 움직입니다. 칸에 놀이기구나 표지판이 있으면 그 칸은 차 있는 것으로 봅니다.

예를 들어 아래 왼쪽 그림은 지도를 보여 주며, 노란색 칸은 놀이기구를 세울 수 있는 자리입니다. 3,43,4에 놀이기구를 세우면(파란색 정사각형으로 표시) 회색 칸에 표지판이 세워집니다. 놀이기구를 세울 수 있었던 자리 중 일부는 표지판이 생겨서 더 이상 쓸 수 없게 됩니다. 이후 3,63,6에 두 번째 놀이기구를 세우면 새 설치원은 기존 표지판까지만 진행하여 오른쪽 그림의 상황이 됩니다.

한 턴에 플레이어는 사용 가능한 칸 중 아무 곳에나 놀이기구를 세울 수 있습니다. 그러면 표지판 설치원이 자동으로 움직이며, 예시처럼 다른 칸들이 사용할 수 없게 될 수 있습니다. 게임의 목표는 상대보다 오래 버티는 것입니다. 자기 턴에 놀이기구를 세울 칸이 없는 플레이어가 집니다.

Izabella가 먼저 시작합니다. 두 사람이 이기기 위해 최선을 다한다고 할 때, Izabella가 첫 턴에 할 수 있는 서로 다른 수 중 그녀가 이기게 되는 경우의 수를 구하십시오.

입력

입력의 첫 줄에는 테스트 케이스의 수 TT가 주어집니다. 이어서 TT개의 테스트 케이스가 나옵니다. 각 테스트 케이스는 게임판의 행 수와 열 수를 나타내는 두 정수 RR과 CC가 적힌 줄로 시작합니다. 그다음 RR개의 줄이 나옵니다. 그중 ii번째 줄에는 CC개의 문자로 이루어진 문자열 Li,1Li,2⋯Li,CL_{i,1}L_{i,2}\cdots L_{i,C}가 있습니다. Li,jL_{i,j}는 ii행 jj열 칸이 새 놀이기구를 세울 수 있는 자리이면 대문자 X이고, 아니면 마침표(.)입니다.

출력

각 테스트 케이스에 대해 Case #x: y 형식으로 한 줄을 출력합니다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 Izabella가 첫 턴에 두어 게임에서 이기게 되는 수의 개수입니다.

제한

  • 1≤T≤1001≤T≤100.
  • 모든 i,ji,j에 대해 Li,jL_{i,j}는 대문자 X 또는 마침표(.)입니다.

힌트

예제 1번에서 Izabella가 이기는 유일한 수는 (2,4)(2,4)에 놀이기구를 세우는 것입니다. 나머지 66개의 수는 두 사람이 최선을 다할 때 Olga가 이기는 게임으로 이어집니다.

예제 2번에서 Izabella가 둘 수 있는 두 유효한 첫 수는 모두 남은 자리가 22개인 판으로 이어집니다. Olga가 둘 수 있는 남은 22개의 자리 중 어느 쪽을 골라도 남은 자리가 11개인 판이 되며, 이는 Izabella가 이기는 상황입니다. 따라서 유효한 첫 수 33개는 모두 이깁니다.

예제 3번에서는 55개 자리 중 가운데 자리에 두는 수만 Izabella가 이기는 첫 수입니다. 나머지 44개의 수는 Olga가 이기는 게임으로 이어집니다.

예제 4번에서는 Izabella가 둘 수 있는 두 유효한 첫 수 모두 Olga에게 유효한 수를 남기지 않으므로, Izabella는 어느 쪽을 두든 바로 이깁니다.

예제1

  1. 예제 1

    입력
    4
    5 7
    .......
    ...X.X.
    ...X.X.
    ..XX...
    ..X....
    1 5
    X.X.X
    2 5
    X.X.X
    .X.X.
    2 2
    X.
    .X
    
    예상 출력
    Case #1: 1
    Case #2: 3
    Case #3: 1
    Case #4: 2