에디터 커서 이동

면접 대비

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

요약
각 줄의 길이가 80 이하인 N개 줄에서 커서를 시작 위치에서 끝 위치로 옮기는 데 필요한 화살표 키 입력의 최솟값을 구한다. 세로 이동은 줄 끝으로 잘린다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 동적 계획법, 구현
정답자
아직 제출이 없습니다

문제

텍스트 에디터에서 프로그램을 편집하고 있습니다. 커서를 한 위치에서 다른 위치로 옮기려고 하는데, 누르는 키의 횟수를 최소로 하고 싶습니다.

에디터는 다음과 같이 동작합니다.

  • 커서는 네 개의 방향키로 움직입니다: 위(↑), 아래(↓), 왼쪽(←), 오른쪽(→).
  • →를 누르면 커서가 한 글자 오른쪽으로 이동합니다. 커서가 어떤 줄의 가장 오른쪽 글자에 있으면 바로 아래 줄의 첫 번째 글자로 이동합니다. 이미 맨 아래 줄의 가장 오른쪽 위치에 있으면 움직이지 않습니다.
  • ←를 누르면 커서가 한 글자 왼쪽으로 이동합니다. 커서가 어떤 줄의 가장 왼쪽 글자에 있으면 바로 위 줄의 마지막 글자로 이동합니다. 이미 맨 위 줄의 가장 왼쪽 위치에 있으면 움직이지 않습니다.
  • ↑를 누르면 커서가 바로 위에 있는 글자로 이동합니다. 바로 위에 글자가 없으면(위 줄이 더 짧으면) 위 줄의 마지막 글자로 이동합니다. 이미 첫 번째 줄에 있으면 움직이지 않습니다.
  • ↓를 누르면 커서가 바로 아래에 있는 글자로 이동합니다. 바로 아래에 글자가 없으면(아래 줄이 더 짧으면) 아래 줄의 마지막 글자로 이동합니다. 이미 마지막 줄에 있으면 움직이지 않습니다.

각 줄의 글자 수와 커서의 시작 위치, 도착 위치가 주어질 때, 커서를 시작 위치에서 도착 위치로 옮기는 데 필요한 최소 키 입력 횟수를 구하세요.

입력

첫째 줄에 프로그램의 줄 수 NN이 주어집니다 (1≤N≤1000001 \le N \le 100000).

다음 NN개의 줄에는 각 줄의 글자 수가 한 개씩 주어집니다. 모든 줄은 글자가 최소 11개, 최대 8080개 있습니다.

그다음 줄에는 커서의 시작 행과 열을 나타내는 두 정수 RSR_S CSC_S가 주어집니다. 여기서 1≤RS≤N1 \le R_S \le N이고, CSC_S는 11 이상이며 RSR_S번째 줄의 글자 수를 넘지 않습니다.

마지막 줄에는 커서의 도착 행과 열을 나타내는 두 정수 RFR_F CFC_F가 주어집니다. 여기서 1≤RF≤N1 \le R_F \le N이고, CFC_F는 11 이상이며 RFR_F번째 줄의 글자 수를 넘지 않습니다.

출력

커서를 RSR_S행 CSC_S열에서 RFR_F행 CFC_F열로 옮기는 데 필요한 최소 키 입력 횟수를 한 줄에 출력하세요.

예제3

  1. 예제 1

    입력
    4
    40
    10
    4
    80
    4 78
    1 35
    
    예상 출력
    10
    
  2. 예제 2

    입력
    1
    1
    1 1
    1 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1
    7
    1 1
    1 7
    
    예상 출력
    6