#include <iostream>
#include <string>
#include <climits>
#include <cmath>
using namespace std;

string s, t;

int FindLeastReplace() {
    int s_len = s.size();
    int t_len = t.size();
    // 题目保证 t_len >= s_len,但仍需避免无符号数下溢
    if (s_len > t_len) return -1; 

    int bestMatch = INT_MAX;
    for (int i = 0; i <= t_len - s_len; ++i) { // 滑动窗口遍历 t 中所有子串
        int exchangeCount = 0;
        for (int j = 0; j < s_len; ++j) { // 计算当前窗口的替换次数
            char c1 = s[j];
            char c2 = t[i + j];
            // 令人蛋疼的细节:取环形距离的最小值(顺时针或逆时针)
            int diff = abs(c1 - c2);
            exchangeCount += min(diff, 26 - diff); 
        }
        if (exchangeCount < bestMatch) {
            bestMatch = exchangeCount;
        }
    }
    return bestMatch;
}

int main() {
    // 读取输入(确保读取整行,无多余空格)
    getline(cin, s);
    getline(cin, t);
    cout << FindLeastReplace() << endl;
    return 0;
}

思路是对的,但是忽略了字母表是首尾相连的