Codeforces Round 277 (Div. 2) |
---|
Закончено |
Нам играет со строкой на своем компьютере. Строка состоит из n строчных английских букв. Строка не представляет собой ничего осмысленного, так что Нам решил её приукрасить, для чего он решил превратить её в палиндром, используя 4 кнопки со стрелками на клавиатуре: влево, вправо, вверх, вниз.
Курсор указывает на некоторый символ строки. Предположим, что курсор сейчас находится в положении i (1 ≤ i ≤ n, строка использует индексируется с 1). Левая и правая стрелки перемещают курсор по строке. Строка циклична, то есть при нажатии на левую стрелку курсор перемещается в положение i - 1, если i > 1, а в противном случае — в конец строки (т.е., положение n). Аналогично себя ведёт правая стрелка (если i = n, то курсор появляется в начале строки).
Когда Нам нажимает на стрелку вверх, то буква, на которую указывает курсор, заменится на следующую букву английского алфавита (алфавит также является цикличным, то есть за буквой «z» следует буква «a»). Аналогично себя ведёт стрелка вниз.
Изначально курсор находится в положении p.
У Нама много домашней работы, поэтому он хочет добиться результата как можно скорее. Помогите ему подсчитать минимальное количество нажатий на стрелочки, необходимое для превращения строки в палиндром?
В первой строке записано два целых числа через пробел, n (1 ≤ n ≤ 105) и p (1 ≤ p ≤ n), соответственно длина строки Нама и начальное положение курсора.
В следующей строке записано n строчных символов, составляющих строку Нама.
Выведите минимальное количество нажатий, необходимое для преобразования строки в палиндром.
8 3
aeabcaez
6
Строка является палиндромом, если она одинаково читается слева-направо и справа-налево.
В примере изначальная строка Нама такова: (положение курсора выделено жирным).
В оптимальном решении Нам может совершить 6 следующих шагов:
В результате получится строка , являющаяся палиндромом.
Название |
---|