벽의 가치
시간 제한2초메모리 제한512 MB
벽이 있는 격자와 N개의 게임말, 하나의 목적지가 주어질 때, 최단 거리 합과 각 벽을 하나씩 없앨 때 줄어드는 거리 합의 총합을 구한다.
문제
Albert는 혼자서도 할 수 있는 보드 게임을 즐겨한다. 이 게임을 플레이 하기 위해 우선 행 열 크기의 격자 보드 게임판을 준비한 후 임의의 칸에 벽을 설치한다. 이후, 개의 서로 다른 빈칸에 (즉, 벽이 없는 칸) 게임말을 하나씩 놓고, 마지막으로 남아있는 빈칸 중 한 곳을 골라 각 게임말이 도달해야하는 목적지를 정한다 - 목적지 칸의 위치를 라 하자 (행 열). 편의상 게임말에는 1번부터 번까지 번호가 붙어있다고 하고, 번째 말이 놓인 칸을 라 하자.
예를 들어 아래 그림의 좌측은 인 게임 보드판의 모습을 나타내고 'W' 로 표시된 칸은 벽을 나타낸다. 나머지 '.' 로 표시된 칸은 빈칸을 나타낸다. 편의상 이 문제에서 문자열 는 번째 행의 게임 보드판의 모습을 나타내는 길이가 인 문자열이라 하면, 이 예제의 게임 보드판은 ".WW.", "..W.", ".WW.", "...." 로 나타낼 수 있다. 우측 그림은 이후 Albert가 총 3개의 게임말을 놓은 칸과 목적지 칸을 나타내는데, , ], 그리고 이다.

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

위 다섯가지의 새로운 게임 보드에서 점수를 구한 후 기존 게임의 점수 (앞서 구한 17점) 과의 차이를 구하면 없앤 벽의 가치가 된다. 왼쪽 부터 순서대로 이를 구해보면:
- 가장 좌측 게임의 점수는 17점으로 기존 게임의 점수와 동일하므로 (1, 2) 칸에 놓인 벽의 가치는 0이다.
- 좌측에서 두 번째 게임의 점수도 17점이고 (1, 3) 칸에 놓인 벽의 가치도 0이다.
- 좌측에서 세 번째 게임의 점수는 9점이고 (2, 3번 말의 최소 거리가 , 로 낮아지기 때문), 따라서 (2, 3) 칸에 놓인 벽의 가치는 8이다.
- 좌측에서 네 번째 게임의 점수는 13점이고 (2, 3번 말의 최소 거리가 , 로 낮아지기 때문), 따라서 (3, 2) 칸에 놓인 벽의 가치는 4이다.
- 좌측에서 다섯 번째 게임의 점수는 17점이고 따라서 (3, 3) 칸에 놓인 벽의 가치는 0점이다.
- 이렇게 다섯 개의 벽의 가치를 모두 구한 후 더해보면 가 된다 -- 이를 벽의 가치 총합이라 하자.
게임 보드의 상태가 주어졌을 때, 기존 게임의 점수 를 구하고 모든 벽의 가치 총합도 구해보자.
입력
입력 첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 가 공백으로 구분되어 주어진다. 다음 줄에 걸쳐 각 줄에 한 쌍의 정수가 공백으로 구분되어 주어지는데 이는 순서대로 번째 게임 말의 위치인 를 나타낸다. 다음 줄에 걸쳐 각 줄에 길이가 인 문자열이 공백없이 주어지는데 이는 순서대로 번째 행의 보드 게임판을 나타내는 문자열 이며, 벽이 있는 칸은 'W'가 주어지고 없는 칸은 '.'가 주어진다.
출력
각 테스트 케이스의 정답인 한 쌍의 정수를 공백으로 구분하여 각 줄에 출력한다. 첫 정수는 기존 게임의 점수인 를 출력하고 두 번째 정수는 모든 벽의 가치 총합을 나타낸다.
제한
- 그리고
- 인 에 대하여:
- 그리고
- 각 테스트 케이스 내에서 게임 말의 위치와 목적지의 위치는 고유하다 - 즉 같은 칸에 두 개의 게임 말이 있거나 게임 말과 목적지가 함께 있는 경우는 없다.
- 게임 말의 위치와 목적지의 위치는 벽이 없는 칸임이 보장된다.
- 벽을 하나도 부수지 않아도 각 게임말에서 상/하/좌/우로 이동하며 빈칸만 이용하여 목적지에 도달하는 것이 가능한 테스트 케이스만 입력으로 주어진다.
- 벽은 적어도 1개 주어진다.