#include #include #include #include using namespace std; char qwerty[3][11] = { "QWERTYUIOP","ASDFGHJKL ","ZXCVBNM " }; int distance(char a, char b) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 11; j++) { if (qwerty[i][j] == a) { for (int ii = 0; ii < 3; ii++) { for (int jj = 0; jj < 11; jj++) { if (qwerty[ii][jj] == b) { int d1 = i > ii ? i - ii : ii - i; int d2 = j > jj ? j - jj : jj - j; return d1 + d2; } } } } } } return 2000; } int column(char a) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 11; j++) { if (qwerty[i][j] == a) { return j; } } } return 0; } int main() { char ch[101]; scanf("%s", &ch[0]); int n = 0; while (ch[n] >= 'A' && ch[n] <= 'Z') { n++; } char r = 'J', l = 'F'; int k = 0; for (int i = 0; i < n; i++) { if (i + 1 < n) { int left = column(ch[i+1]); int right = left; for (int j = i + 1; j < n; j++) { int c = column(ch[j]); left = c > left ? left : c; right = c < right ? right : c; } int mid = (right + left) >> 1; char nextR, nextL; for (int j = i + 1; j < n; j++) { if (column(ch[j]) >= mid) { nextR = ch[j]; break; } } for (int j = i + 1; j < n; j++) { if (column(ch[j]) <= mid) { nextL = ch[j]; break; } } int dR = distance(r, ch[i]); int dL = distance(l, ch[i]); if (dR + distance(nextR, ch[i]) > dL + distance(nextL, ch[i])) { l = ch[i]; k += dL; } else { r = ch[i]; k += dR; } } else { int dR = distance(r, ch[i]); int dL = distance(l, ch[i]); if (dR > dL) { l = ch[i]; k += dL; } else { r = ch[i]; k += dR; } } } cout << k; return 0; }