벽의 가치

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

문제

Albert는 혼자서도 할 수 있는 보드 게임을 즐겨한다. 이 게임을 플레이 하기 위해 우선 RRCC열 크기의 격자 보드 게임판을 준비한 후 임의의 칸에 벽을 설치한다. 이후, NN개의 서로 다른 빈칸에 (즉, 벽이 없는 칸) 게임말을 하나씩 놓고, 마지막으로 남아있는 빈칸 중 한 곳을 골라 각 게임말이 도달해야하는 목적지를 정한다 - 목적지 칸의 위치를 (r,c)(r, c)라 하자 (rrcc열). 편의상 게임말에는 1번부터 NN번까지 번호가 붙어있다고 하고, ii 번째 말이 놓인 칸을 (X_i,Y_i)(X\_i, Y\_i)라 하자.

예를 들어 아래 그림의 좌측은 R=C=4R = C = 4 인 게임 보드판의 모습을 나타내고 'W' 로 표시된 칸은 벽을 나타낸다. 나머지 '.' 로 표시된 칸은 빈칸을 나타낸다. 편의상 이 문제에서 문자열 A_iA\_iii번째 행의 게임 보드판의 모습을 나타내는 길이가 CC인 문자열이라 하면, 이 예제의 게임 보드판은 A=\[A = \[".WW.", "..W.", ".WW.", "...."]] 로 나타낼 수 있다. 우측 그림은 이후 Albert가 총 3개의 게임말을 놓은 칸과 목적지 칸을 나타내는데, X=\[1,1,4]X = \[1, 1, 4], Y=\[1,4,4Y = \[1, 4, 4], 그리고 (r,c)=(2,2)(r, c) = (2, 2) 이다.

이 때 각 말이 목적지에 도달하려면 벽이 없는 빈칸을 통해 상/하/좌/우로 이동할 수 있는데, ii번째 말이 목적지까지 이동해야하는 최소 거리를 d_id\_i라 하자. 위 예제에서 d_1=2d\_1 = 2 (하 -> 우 로 이동하면 된다), d_2=9d\_2 = 9, 그리고 d_3=6d\_3 = 6 임을 쉽게 알 수 있다. 모든 말이 이동해야하는 최소 거리의 총 합을 D=_1iNd_iD = \sum\_{1 \le i \le N} d\_i 라 하고, 이는 게임의 점수가 된다 - 이 예제의 게임 점수는 2+9+6=172 + 9 + 6 = 17 점이다.

이 놀이가 너무 심심하다고 느낀 Albet는 게임을 약간 변형해보기로 했다. 우선, 맨 처음의 보드 게임 상태를 유지한채로 벽을 하나 없애보기로 했다. 벽을 없애면 새로운 길이 생길 수 있으므로 게임의 점수는 같거나 낮아질텐데, 이 점수의 차이를 없어진 "벽의 가치"라 정의하자. 위 예제에서는 벽이 총 5칸 있으므로, 아래 그림 처럼 5가지 다른 방법으로 벽을 딱 하나 없앨 수 있다 - 벽이 없어진 칸은 알아보기 쉽도록 그림에서 'X'로 표시했지만 빈칸이므로 게임말이 지나갈 수 있다.

위 다섯가지의 새로운 게임 보드에서 점수를 구한 후 기존 게임의 점수 (앞서 구한 17점) 과의 차이를 구하면 없앤 벽의 가치가 된다. 왼쪽 부터 순서대로 이를 구해보면:

  • 가장 좌측 게임의 점수는 17점으로 기존 게임의 점수와 동일하므로 (1, 2) 칸에 놓인 벽의 가치는 0이다.
  • 좌측에서 두 번째 게임의 점수도 17점이고 (1, 3) 칸에 놓인 벽의 가치도 0이다.
  • 좌측에서 세 번째 게임의 점수는 9점이고 (2, 3번 말의 최소 거리가 d_2=3d\_2 = 3, d_3=4d\_3 = 4로 낮아지기 때문), 따라서 (2, 3) 칸에 놓인 벽의 가치는 8이다.
  • 좌측에서 네 번째 게임의 점수는 13점이고 (2, 3번 말의 최소 거리가 d_2=7d\_2 = 7, d_3=4d\_3 = 4로 낮아지기 때문), 따라서 (3, 2) 칸에 놓인 벽의 가치는 4이다.
  • 좌측에서 다섯 번째 게임의 점수는 17점이고 따라서 (3, 3) 칸에 놓인 벽의 가치는 0점이다.
  • 이렇게 다섯 개의 벽의 가치를 모두 구한 후 더해보면 0+0+8+4+0=120 + 0 + 8 + 4 + 0 = 12가 된다 -- 이를 벽의 가치 총합이라 하자.

게임 보드의 상태가 주어졌을 때, 기존 게임의 점수 DD를 구하고 모든 벽의 가치 총합도 구해보자.

입력

입력 첫 줄에 테스트 케이스의 수 TT 가 주어진다.

각 테스트 케이스의 첫 줄에는 R,C,N,r,cR, C, N, r, c가 공백으로 구분되어 주어진다. 다음 NN줄에 걸쳐 각 줄에 한 쌍의 정수가 공백으로 구분되어 주어지는데 이는 순서대로 ii번째 게임 말의 위치인 X_i,Y_iX\_i, Y\_i를 나타낸다. 다음 RR줄에 걸쳐 각 줄에 길이가 CC인 문자열이 공백없이 주어지는데 이는 순서대로 ii번째 행의 보드 게임판을 나타내는 문자열 A_iA\_i 이며, 벽이 있는 칸은 'W'가 주어지고 없는 칸은 '.'가 주어진다.

출력

각 테스트 케이스의 정답인 한 쌍의 정수를 공백으로 구분하여 각 줄에 출력한다. 첫 정수는 기존 게임의 점수인 DD를 출력하고 두 번째 정수는 모든 벽의 가치 총합을 나타낸다.

제한

  • 1T51 \le T \le 5
  • 2R,C2002 \le R, C \le 200
  • 1N501 \le N \le 50
  • 1rR1 \le r \le R 그리고 1cC1 \le c \le C
  • 1iN1 \le i \le Nii에 대하여:
    • 1X_iR1 \le X\_i \le R 그리고 1Y_iC1 \le Y\_i \le C
  • 각 테스트 케이스 내에서 게임 말의 위치와 목적지의 위치는 고유하다 - 즉 같은 칸에 두 개의 게임 말이 있거나 게임 말과 목적지가 함께 있는 경우는 없다.
  • 게임 말의 위치와 목적지의 위치는 벽이 없는 칸임이 보장된다.
  • 벽을 하나도 부수지 않아도 각 게임말에서 상/하/좌/우로 이동하며 빈칸만 이용하여 목적지에 도달하는 것이 가능한 테스트 케이스만 입력으로 주어진다.
  • 벽은 적어도 1개 주어진다.