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

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

범선 항해

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

요약
여섯 가지 돛 방향과 태킹 비용, 차단 지점을 반영해 격자에서 가장 빠른 항로를 구합니다.
난이도

보통10점 중 5점

유형
최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

앤서니는 싱가포르 남쪽 바다에서 열리는 요트 대회에 자신의 배 인빈시블 호를 몰고 나간다. 인빈시블 호는 바람을 기준으로 다음 세 가지 방식으로만 나아간다.

항해 방식나아가는 방향이웃 웨이포인트까지 걸리는 시간
클로즈 홀바람을 45도로 거슬러 올라가는 대각선 방향10분
빔 리치바람과 90도를 이루는 좌우 방향9분
브로드 리치바람을 135도로 등지는 대각선 방향15분

바람은 항상 격자의 위에서 아래로 분다. 그래서 클로즈 홀은 위쪽 대각선, 빔 리치는 왼쪽이나 오른쪽, 브로드 리치는 아래쪽 대각선에 있는 이웃 웨이포인트로 한 번에 간다.

세 방식은 각각 바람을 오른쪽에서 받는 스타보드 택(왼쪽으로 향하는 세 방향)과 바람을 왼쪽에서 받는 포트 택(오른쪽으로 향하는 세 방향)으로 나뉜다. 배가 향할 수 있는 방향은 모두 여섯 가지다.

여섯 가지 항해 방향

바람을 정면으로 거슬러 올라가는 노고 존으로는 어떤 범선도 오래 나아가지 못하고, 바람을 정확히 등지고 달리는 러닝은 앤서니의 실력으로 다룰 수 없다.

앤서니는 정사각형 격자 모양으로 웨이포인트를 찍어 GPS에 넣는다. 웨이포인트마다 방향을 최대 한 번 바꾸고 다음 웨이포인트로 나아간다. 같은 택 안에서는 클로즈 홀과 빔 리치 사이, 빔 리치와 브로드 리치 사이를 속도 손실 없이 바꾼다. 한쪽 택의 브로드 리치에서 반대쪽 택의 브로드 리치로 바꾸는 자이빙은 앤서니의 실력으로 할 수 없다. 반면 한쪽 택의 클로즈 홀에서 반대쪽 택의 클로즈 홀로 바꾸는 태킹은 할 수 있고, 배가 잠시 노고 존을 향하면서 속도를 잃어 12분이 걸린다.

싱가포르 남쪽 바다에는 정박한 컨테이너선과 유조선이 많다. 앤서니는 정박한 배 때문에 안전하게 갈 수 없는 웨이포인트를 GPS에 표시해 둔다. 표시된 웨이포인트에는 들어가지 못하지만, 표시된 두 웨이포인트 사이를 대각선으로 가로지르는 이동은 막히지 않는다.

출발할 때 앤서니는 여섯 방향 중 원하는 쪽으로 배를 향하게 하고, 그 방향에 해당하는 속도로 곧바로 출발한다.

입력

첫째 줄에 정사각형 격자의 한 변 길이 nn이 주어진다. (2≤n≤1502 \le n \le 150)

다음 nn개 줄에는 각각 nn개의 문자가 주어지고, 한 줄이 격자의 한 행을 나타낸다. 출발점은 S, 도착점은 F, 앤서니가 갈 수 없는 웨이포인트는 X, 나머지 웨이포인트는 W다. S와 F는 각각 하나씩 주어진다.

출력

앤서니가 출발점에서 도착점까지 가는 데 걸리는 최소 시간을 분 단위 정수로 한 줄에 출력한다. 도착점에 갈 수 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    9
    WWWWSWXWW
    WWWWWWWWW
    WWWWWWWWW
    WWWWWWXWW
    WWWWWWWWW
    WWWWWWWWW
    FWWWWWWWW
    WWWWWWWWW
    WWWWWWWWW
    
    예상 출력
    268
    
  2. 예제 2

    입력
    3
    WFW
    WWW
    WSW
    
    예상 출력
    32