시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
늑대 현우는 사냥꾼들을 피해 숲속 오두막으로 도망치려고 한다. 사냥꾼들은 나무 뒤에 숨어 있으므로, 현우는 이동하는 동안 가능한 한 모든 나무에서 멀리 떨어진 길을 고르고 싶다.
숲은 N×M 크기의 격자로 주어진다. 각 칸은 빈 목초지이면 ., 나무가 있으면 +, 현우의 현재 위치이면 V, 오두막의 위치이면 J로 표시된다. 현우는 현재 칸에서 동서남북으로 인접한 칸으로 이동할 수 있으며, 나무가 있는 칸으로도 이동할 수 있다.
현우가 R행 C열에 있고 어떤 나무가 A행 B열에 있다면, 두 칸 사이의 거리는 |R-A| + |C-B|이다.
한 경로의 안전도는 그 경로에 포함된 모든 칸에 대해, 각 칸에서 가장 가까운 나무까지의 거리 중 최솟값이다. 오두막 칸도 경로에 포함되므로 이 값을 계산할 때 반드시 포함해야 한다. 현우가 시작 위치 V에서 오두막 J까지 이동할 때 얻을 수 있는 안전도의 최댓값을 구하시오.
첫째 줄에 두 정수 N과 M (1 ≤ N, M ≤ 500)이 주어진다.
다음 N개 줄에는 숲의 지도가 주어진다. 지도에는 V와 J가 각각 정확히 하나씩 있으며, +는 적어도 하나 있다.
현우의 시작 칸에서 오두막까지 가는 경로 중, 나무까지의 최소 거리를 가장 크게 만들었을 때의 값을 정수 하나로 출력한다.