Descripción Asunto:
Cuco Este es un niño juguetón, un día, se puso un anillo mágico de las antiguas ruinas. Este anillo de un alfabeto que consta de un extremo a otro anillos, un anillo de puntero señala inicialmente la letra a. Este cuco cada uno puede rotar en sentido horario o antihorario un espacio. Por ejemplo, una rotación en sentido horario a través de z, la rotación en sentido antihorario a b. Este cuco manos de una cadena, pero es tonto, así que vino a pedir su ayuda, pregunte cuántas veces para encender el mínimo requerido para obtener la cadena
ideas:
Desde un número puede ser transferida a otro número de x veces en sentido horario o en sentido antihorario de y, entonces x ≡ y (mod 26), teniendo x, y que el valor absoluto más pequeño, para repetir
resumen:
Tenga en cuenta que el problema puede ser abstracto, abstracto para el nivel más simple, el mejor
código:
. 1 #include <cstdio> 2 #include <la iostream> 3. #Include <CString> 4. #Include <algoritmo> 5. El uso de espacio de nombres STD; . 6 // no es necesario para almacenar las letras . 7 int Point = 0 , ANS = 0 , ahora; . 8 Char T [ 10005 ]; . 9 int () principal 10 { . 11 // valor absoluto del mínimo de dos números troquel 26 con el restante 12 es Scanf ( " % S " , T); 13 es int len = strlen (T); 14 para ( int i = 0 ; i <len; i ++ ) 15 { 16 ahora = t [i] - ' un ' ; 17 int t1 = abs (ahora- punto); 18 int t2 = abs ( 26 - t1); 19 ans + = min (t1, t2); 20 punto = ahora; 21 } 22 tribunal << ans << endl; 23 }