Робочий стіл#4681

Робочий стіл

1 секунда
64 мегабайти
Складна

На робочому столі операційної системи знаходиться ярликів, кожен з яких заданий цілими координатами і , а також іменем. Ім'я кожного ярлика складається з малих латинських літер (–). Вам потрібно перейти з поточно вибраного ярлика до цільового ярлика за допомогою клавіатури, зробивши якомога менше натискань клавіш. Переміщення відбувається за допомогою літерних клавіш – або стрілок "", "", "", "".

При використанні літерних клавіш вибір змінюється за такими правилами:

  1. Якщо існують ярлики, імена яких починаються з натиснутої літери, і один із них наразі вибраний, вибір переходить до наступного ярлика (у лексикографічному порядку серед тих, що починаються з цієї літери; після останнього переходить знову до першого з такою літерою). Наприклад, якщо є ярлики , , , при натисканні вибір перемикатиметься тільки між та .

  2. Якщо ім'я поточного ярлика не починається з натиснутої літери, вибір переходить до лексикографічно найменшого ярлика, що починається з цієї літери.

  3. Якщо немає жодного ярлика, що починається з цієї літери, нічого не відбувається.

При використанні клавіш-стрілок вибір переходить до найближчого ярлика (за евклідовою відстанню) у напрямку стрілки, в межах прямокутного сектора, що виходить із поточного ярлика. Бісектриса цього сектора співпадає з напрямком стрілки. Якщо ярлик лежить на межі сектора, він належить до верхнього/нижнього сектору (а не лівого чи правого). Якщо у секторі немає жодного ярлика, вибір не змінюється. Якщо декілька ярликів знаходяться на однаковій мінімальній відстані, обирається той, у кого менше ; якщо знову рівність, обирається той, у кого менше .

Наприклад, якщо наразі вибраний ярлик (див. рисунок), то переходи при натисканні стрілок виглядають так:

  1. Стрілка "": Вибір переходить до ярлика , який є найближчим у цьому секторі. Ще одне натискання "" вибере ярлик .

  2. Стрілка "": У цьому секторі знаходяться ярлики та . Вибір переходить до , як до ближчого.

  3. Стрілка "": У цьому секторі є лише ярлик , тому вибір переходить до нього.

  4. Стрілка "": Ярлики та знаходяться на однаковій відстані від . Вибирається , оскільки у нього менше . Ще одне натискання "" залишає вибір на , оскільки у нижньому секторі інших ярликів немає.

Напишіть програму DESKTOP, яка за назвами та координатами ярликів обчислює мінімальну кількість натискань клавіш, необхідних для переходу від ярлика до ярлика .

Вхідні дані

У першому рядку вхідного файлу задано три цілі числа: (1 \le N \le 1000) — кількість ярликів, (1 \le S \le N) — номер поточно обраного ярлика, і (1 \le F \le N) — номер цільового ярлика. Кожен із наступних рядків описує ярлик у форматі "", де , — цілі числа (0 \le x, y \le 10^6), а — рядок із до малих латинських літер (–).

Жодні два ярлики не мають однакових координат або імен. Координатна сітка стандартна, тобто "" збільшує , "" збільшує .

Вихідні дані

Виведіть єдине ціле число — мінімальну кількість натискань клавіш, необхідних для переходу від ярлика до ярлика .

Приклади

Приклад 1

Loading
Loading