#3103. 文本编辑器
文本编辑器
题目描述
Vasya 不情愿地敲着键盘,挤牙膏式地写着他那篇关于荷马史诗《奥德赛》的作文……他要怎么向文学老师解释自己并不想当作家?他其实想当程序员。所以他很乐意写程序,但一点也不乐意写作文。
正当 Vasya 在想象的黑暗池塘里钓句子时,他突然好奇:把光标从一个位置移到另一个位置,最少要按多少次键?
把他的问题严格描述如下:Vasya 正用一个文本编辑器打字。他已经写了 行,第 行有 个字符(含空格)。若某行有 个字符,则该行共有 个可以放光标的位置:每个字符之前,以及行尾所有字符之后。于是光标的位置由一对整数 确定,其中 是行号, 是光标在该行中的位置(位置从行首起从 1 开始编号)。
Vasya 移动光标不用鼠标,只用 "Up"、"Down"、"Right"、"Left" 四个键。每按一次,光标就朝对应方向移动。设按键前光标在位置 :
- "Up":若光标在第一行(),光标不动;否则移到上一行(第 行)的同一位置。此时若上一行太短、容不下位置 ,光标就移到第 行的最后一个位置;
- "Down":若光标在最后一行(),光标不动;否则移到下一行(第 行)的同一位置。此时若下一行太短、容不下位置 ,光标就移到第 行的最后一个位置;
- "Right":若光标在本行可以向右移动(),则向右移到位置 ;否则说明光标已在行尾,按 "Right" 不动;
- "Left":若光标在本行可以向左移动(),则向左移到位置 ;否则说明光标已在行首,按 "Left" 不动。
已知文本文件的行数和每行的字符数,求把光标从位置 移到 最少需要按多少次键。
输入格式
输入的第一行包含整数 (),表示文件行数。第二行包含 个用单个空格隔开的整数 ()。第三行包含四个整数 (,,)。
输出格式
输出一个整数——把光标从位置 移到 最少需要按键的次数。
4
2 1 6 4
3 4 4 2
3
4
10 5 6 4
1 11 4 2
6
3
10 1 10
1 10 1 1
3
说明/提示
第一组样例的编辑器有四行。把光标在行内的可能位置记为数字,字母 s 表示光标初始位置,t 表示目标位置,则编辑器中所有可能的光标位置如下表:
123 12 123s567 1t345
该样例的一种可行方案是:"Left"、"Down"、"Left"。