CF486C Palindrome Transformation
题目描述
Nam 正在他的电脑上玩一个字符串游戏。该字符串由 $n$ 个小写英文字母组成。由于这个字符串毫无意义,Nam 决定让这个字符串变得更加美观,也就是通过使用四个方向键(左、右、上、下)将其变成一个回文串。
当前有一个光标指向字符串中的某个字符。假设光标当前在第 $i$ 个位置($1 \leq i \leq n$,字符串采用从 $1$ 开始的索引)。左右方向键用来移动光标。字符串是循环的,这意味着,当 Nam 按下左方向键时,如果 $i > 1$,光标会移动到 $i-1$;否则,光标会移动到字符串的末尾(即第 $n$ 个位置)。右方向键也是同理(如果 $i = n$,光标会移动到开头)。
当 Nam 按下上方向键时,光标指向的字母会变成英文字母表中的下一个字母(字母表也视为循环的,即 'z' 后面是 'a')。下方向键具有相同的效果(即与上方向键只是方向相反)。
最初,光标在第 $p$ 个位置。
由于 Nam 作业太多,他希望尽快完成这个游戏。你能帮他计算,将字符串变为回文串所需的最少按键次数吗?
输入格式
第一行包含两个用空格分隔的整数 $n$($1 \leq n \leq 10^{5}$)和 $p$($1 \leq p \leq n$),分别表示字符串的长度和光标的初始位置。
第二行包含 $n$ 个小写字母,表示 Nam 的字符串。
输出格式
输出将字符串变成回文串所需的最少按键次数。
说明/提示
如果一个字符串正着和反着读都是一样的,则这个字符串是回文串。
在样例测试中,Nam 初始的字符串为:(粗体为光标位置)。
在最优方案下,Nam 可以进行 $6$ 次操作:
结果为 ,已成为回文串。
由 ChatGPT 5 翻译