eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Робочий стол

Робочий стол

На робочому столі операційної системи розміщено \textbf{N} ярликів, кожен з яких задано цілими координатами \textbf{x} та \textbf{y}, а також назвою. Назва ярлика складається з маленьких символів латинського алфавіту (\textbf{a-z}). Необхідно перейти (тобто перемістити виділення) з виділеного ярлика \textbf{S} до ярлика \textbf{F}, за допомогою клавіатури, використавши найменшу можливу кількість натиснень. Перехід здійснюється за допомогою натиснень на клавіші з буквами \textbf{a-z}, або на стрілки "↑","↓","←" и "→". При натисненні на клавіші з буквами перехід відбуваєьбся за такими правилами: \begin{enumerate} \item Якщо на робочому столі знаходяться ярлики, назва яких починається на натиснену букву, і виділен один з них, то перехід відбувається на ярлык, з назвою, наступною у лексикографічному порядку серед тех, які починаються на цю букву (після останнього виділення переходить на перший). Тобто якщо є ярлики \textbf{a}, \textbf{ab}, \textbf{b}, то при натисненні \textbf{a} виділення буде переходить лише між \textbf{a} та \textbf{ab}. \item Якщо назва поточного ярлика не починається на вибрану букву, то виділення переходить на лексикографічно найменший ярлик, який починається на натиснену букву. \item Якщо на робочому столі немає ярликів, назва яких починається на натиснену букву, перехід не здійснюється. \end{enumerate} \includegraphics{https://static.e-olymp.com/content/63/63a6e829e37f0d4a535243d1effc3b206a53b2c6.jpg} При натисненні на стрілку перехід відбувається на найближчий у звичному геометричному змісті ярлик, який лежить у секторі стрілки. Визначимо сектор стрілки як прямий кут з вершиною у виділеному ярлиці, бісектрисою якого є промінь, що відповідає стрілці. Якщо ярлик лежить на границі сектора, то він відноситься до верхнього або нижнього сектору (а не до правого чи лівого). Якщо у визначеному секторі немає жодного ярлика, то перехід не здійснюється. Якщо найближчих ярликів декілька, то вибирається ярлик з найменшою \textbf{x} координатою, а якщо і таких декілька, то вибирається з найменшою \textbf{y}-координатою. Наприклад, якщо виділено ярлык \textbf{a} (див. рисунок), то при натисненні стрілок можуть відбутись такі переходи: \begin{enumerate} \item Стрілка "←". Виділення переходить на ярлик \textbf{b}, так як він є найближчим у секторі цієї стрілки. При наступному натисненні "←" буде виділено ярлик \textbf{c}. \item Стрілка "↑". У секторі стрілки знаходяться ярлики \textbf{d} та \textbf{e}. Виділення перейде на \textbf{d}, який ближче. \item Стрілка "→". У секторі "→" знаходиться лише ярлик \textbf{g}, на який і перейде виділення. \item Стрілка "↓". У цьому секторі знаходяться ярлики \textbf{f} та \textbf{h}, які рівновіддалені від ярлика \textbf{a}. Виділення переходить на ярлик \textbf{h}, так як \textbf{x}-координата цього ярлика менша. Якщо після цього натиснути "↓", то виділення залишиться на \textbf{h}, так як у секторі знизу немає жодного ярлика. \end{enumerate} Напишіть програму DESKTOP, яка за інформацією про назви ярликі та про їх розміщення визначить найменшу можливу кількість натиснень клавіатури, за допомогою яких можна з вибраного ярлика досягти потрібного. \textbf{Вхіні дані} Перший рядок вхідного файлу містить три цілих числа: \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{1000}) -- кількість ярликів на робочому столі, \textbf{S} (\textbf{1} ≤ \textbf{S} ≤ \textbf{N}) -- номер вибраного ярлика, \textbf{F} (\textbf{1} ≤ \textbf{F} ≤ \textbf{N}) -- номер ярлика на який потрібно перейти. Кожен з наступних \textbf{N} рядків задає ярлик у форматі "\textbf{x y text}", \textbf{x}, \textbf{y} -- цілі числа (\textbf{0} ≤ \textbf{x}, \textbf{y} ≤ \textbf{10^6}), а текст містить не більше ніж \textbf{50}, і не менше ніж один маленький символ латинського алфавіту \textbf{a-z}. Ніякі два ярлики не мають однакових координат в однакових назв. Координатна сітка -- стандартна, тобто "↑" збільшується \textbf{y}-координата, а "→" \textbf{x}-координата. \textbf{Вихіні дані} Єдиний рядок вихідного файлу повинен містити одне ціле число -- мінімальну кількість натиснень на клавіатуру, які дозволять перейти від ярлика \textbf{S} до ярлика \textbf{F}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
8 1 4
5 4 a
2 3 b
3 2 h
0 3 c
4 6 d
7 6 e
7 2 f
9 6 g
Вихідні дані #1
1