Twin Letters
TopCoder Open 2021, Round 1A
Time Limit: 0.2s, Memory Limit: 64MiB
Ели има стринг S. Тя може да променя стринга произволен брой пъти, като в една операция може да избере някоя от текущите му букви и я "увеличи" или "намали". Увеличаване на буква я променя в следващата буква от азбуката (например 'A'→'B', 'L'→'M', или 'Y'→'Z'), докато намаляване я променя в предходната буква от азбуката (например 'B'→'A', 'M'→'L', или 'Z'→'Y'). Буквата 'A' не може да бъде намалена, а 'Z' – да бъде увеличена. Всяка позиция от стринга може да бъде променяна произволен брой пъти, тоест от S може да бъде получен всеки друг стринг със същата дължина.

Ели иска да промени стринга по такъв начин, че всяка буква в него да си има "близнак" - тоест да има същата буква или веднага вляво или веднага вдясно от себе си (или и двете).

Сега Ели се чуди колко най-малко промени са нужни за да трансформира нейния стринг S в такъв, в който всяка буква си има "близнак".

Нека, например, Ели има стринга "TOPCODER". Тя може да го превърне в:
  • "TTPPOOEE" с 0 + 5 + 0 + 13 + 0 + 11 + 0 + 13 = 42 операции;
  • "PPPEEEEE" с 4 + 1 + 0 + 2 + 10 + 1 + 0 + 13 = 31 операции;
  • "OOOOOOOO" с 5 + 0 + 1 + 12 + 0 + 11 + 10 + 3 = 42 операции;
  • "SSEEEKKK" с 1 + 4 + 11 + 2 + 10 + 7 + 6 + 7 = 48 операции;
  • "PPPDDDLL" с 4 + 1 + 0 + 1 + 11 + 0 + 7 + 6 = 30 операции;
  • "GGLLHHFF" с 13 + 8 + 4 + 9 + 7 + 4 + 1 + 12 = 58 операции.
От горните варианти, трансформацията до "PPPDDDLL" е с най-малко промени -- като 30 се оказва и оптималният отговор за стринга "TOPCODER" (като можем да ги постигнем и по други начини).
Вход
На единствен ред на стандартния вход ще бъде зададен един стринг S, съставен от главни букви на английската азбука ({'A'-'Z'}).
Изход
На стандартния изход изведете едно цяло число – търсения минимален брой операции.
Ограничения
  • 2 ≤ |S| ≤ 100
Примерен Вход Примерен Изход
TOPCODER30
WITHOUTITIMJUSTESPR54
NOZAPHODJUSTVERYVERYIMPROBABLE93
ABCDEFGHIJKLMNOPQRSTUVWXYZ13
Мрън!