Descifrado de desplazamiento cíclico de una cadena

Swift Hard strings

Tarea «Descifrado de desplazamiento cíclico de una cadena»

Se da una cadena cifrada S, que consta de letras latinas minúsculas. Se obtiene de la cadena original T mediante un desplazamiento cíclico a la derecha en algún número de posiciones k (0 ≤ k < |T|) y la posterior sustitución de cada carácter por el siguiente en el alfabeto (con transición cíclica: 'z' → 'a'). Es necesario encontrar la cadena original T de longitud mínima, tal que después de la transformación descrita se obtenga S. Si hay varias T, elegir la lexicográficamente mínima. La longitud de S es de 1 a 1000. Se garantiza que existe una solución.

Formato de entrada

Una cadena S (letras latinas minúsculas, longitud de 1 a 1000).

Formato de salida

Una cadena — la cadena original T de longitud mínima (y lexicográficamente mínima entre dichas cadenas).

Ejemplos

Ejemplo 1

ENTRADA
za
SALIDA
yz

Ejemplo 2

ENTRADA
aaa
SALIDA
z

Ejemplo 3

ENTRADA
5 3 0
SALIDA
None
main.swift