2012 Canadian Computing Competition, Stage 2

Day 2, Problem 1: Editor Distance

You are using an editor to type in a program that you hope solves another problem on this contest. Instead of thinking about solving this problem, you look at your editor and start to think of how to edit your program more quickly.

Your editor has the following characteristics:

  • you can move your cursor using the direction keys: up (↑), down (↓), left (←) or right (→)
  • pressing → will move the cursor one character to the right; if the cursor is on the rightmost character of a line, the cursor will move to the first character of the next line below the current line; (the cursor will not move if it is in the bottom-right position)
  • pressing ← will move the cursor one character to the left; if the cursor is on the leftmost character of a line, the cursor will move to the last character of the previous line above the current line; (the cursor will not move if it is in the top-left position)
  • pressing ↑ will move the cursor to the character immediately above it; if there is no character immediately above the cursor, it will move to the last character of the previous line above the current line; (the cursor will not move if it is on the first line)
  • pressing ↓ will move the cursor to the character immediately below it; if there is no character immediately below the cursor, it will move to the last character of the next line below the current line; (the cursor will not move if it is on the last line)

You would like to ?nd the least number of key presses that will cause you to move between positions in your editor in a given program which you are editing.

Input Format

The first line of input is N, the number of lines of your program (1 ≤ N ≤ 100000). The next N lines contain the number of characters on each line: you can assume there is at least one character per line, and at most 80 characters per line. The next line contains two integers RS CS, indicating the starting row and column of the cursor (1 ≤ RS ≤ N, 1 ≤ CS, and CS is at most the number of characters in row RS). The last line contains two integers RF CF, indicating the finishing row and column of the cursor (1 ≤ RF ≤ N, 1 ≤ CF, and CF is at most the number of characters in row RF).

Output Format

Output the minimum number of key presses that are required to move the cursor from row RS and column CS to row RF and column CF.

Sample Input

4
40
10
4
80
4 78
1 35

Sample Output

10

All Submissions
Best Solutions


Point Value: 10
Time Limit: 2.00s
Memory Limit: 64M
Added: Jun 20, 2012

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, TEXT, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

Comments (Search)

It's quiet in here...