한 수로 잡기 (작은 입력)

시간 제한5초메모리 제한512 MB

요약
체스판 위 기물 쌍 가운데 한 번의 합법적인 수로 상대 기물을 잡을 수 있는 순서쌍 개수를 셉니다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 완전 탐색
정답자
아직 제출이 없습니다

문제

말이 놓인 체스판이 주어진다. 한 수 만에 어떤 말이 잡히는 경우의 수를 모두 세어라. 이 문제에서는 말의 색을 구분하지 않으므로, 색과 상관없이 어떤 말이든 다른 말을 잡을 수 있다.

칸의 위치는 A1, A2, ..., A8, B1, ..., H8처럼 A부터 H까지의 열 문자와 1부터 8까지의 행 숫자로 나타낸다.

말의 종류와 움직임은 다음과 같다.

  • (K) 킹은 여덟 방향으로 한 칸 움직인다.
  • (Q) 퀸은 여덟 방향으로 원하는 칸 수만큼 움직이지만, 다른 말을 뛰어넘지 못한다.
  • (R) 룩은 가로나 세로로만 움직이며, 다른 말을 뛰어넘지 못한다.
  • (B) 비숍은 대각선으로만 움직이며, 다른 말을 뛰어넘지 못한다.
  • (N) 나이트는 가로로 두 칸에 세로로 한 칸, 또는 가로로 한 칸에 세로로 두 칸 떨어진 칸으로 움직이며, 사이에 놓인 말에 막히지 않는다.
  • (P) 폰은 열 문자가 커지는 쪽(A에서 B, B에서 C 순서)으로 대각선으로 움직여서만 잡는다. 즉 열 문자가 하나 크고 행 숫자가 1 크거나 1 작은 칸에 있는 말만 잡는다.

세는 대상은 (잡는 말, 잡히는 말) 순서쌍이다. 두 말이 서로 잡을 수 있으면 두 가지로 센다.

예를 들어 B2에 킹, A1에 폰, H8에 퀸이 있으면 답은 3이다. H8의 퀸이 B2의 킹을 잡고, A1의 폰이 B2의 킹을 잡고, B2의 킹이 A1의 폰을 잡는다. H8의 퀸은 A1의 폰을 잡지 못한다. 대각선 중간의 B2를 킹이 막고 있기 때문이다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 말의 개수 NN이 주어지고, 이어지는 NN개의 줄에는 말이 놓인 칸과 말의 종류가 -로 이어져 주어진다.

  • 1≤T≤1001 \le T \le 100
  • 1≤N≤101 \le N \le 10
  • 말의 종류는 K, Q, R, B, N, P 중 하나이다.
  • 한 칸에는 말이 최대 하나 놓인다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 한 수 만에 어떤 말이 잡히는 경우의 수이다.

예제1

  1. 예제 1

    입력
    2
    2
    A1-K
    A8-Q
    
    3
    B2-K
    A1-P
    H8-Q
    
    예상 출력
    Case #1: 1
    Case #2: 3