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 初始的字符串为:![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF486C/c2c9513e216627ba8dba5e20f24d19bb9e05137a.png)(粗体为光标位置)。 在最优方案下,Nam 可以进行 $6$ 次操作: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF486C/69c8590618c960ba2fbb8128394f526e54e905cd.png)结果为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF486C/f8fb95d3cc7310b730ff830a0c29f176cf3c201f.png),已成为回文串。 由 ChatGPT 5 翻译