Copiado al portapapeles
Descripción
Codificar palabras es a menudo usado en el área de la criptografía o para almacenar información. Aqui, desarollaremos un simple esquema de codificación que codifique un tipo particular de palabras con cinco letras o menos (en minúsculas) a números enteros.
Consideremos el alfabeto inglés $(a, b, c, d, ..., z)$. Usando este alfabeto, un conjunto de palabras válidas en estricto orden ascendente serán formadas. En este conjunto de palabras válidas, las letras de una palabra válida estan en estrictas orden ascendete. Por ejemplo:
abc aep gwz xyz
son palabras válidas de tres letras, mientras que
aab aba zyx
no lo son.
Para cada palabra válida debemos asociar un número entero el cual nos dara la posición de la palabra en la lista de palabras. Esto es:
a -> 1
b -> 2
...
z -> 26
ab -> 27
ac -> 28
...
az -> 51
bc -> 53
...
vwxyz -> 83681
Tu programa debe leer una serie de lineas de entrada. Cada linea constara de una sola palabra, esa palabra tendra una longitud de entre uno y cinco. Para cada palabra leída, si la palabra es inválida deberas imprimir el numero '0' (cero). Si la palabra es válida deberas imprimir la posición de la palabra en la lista de arriba.
Entrada
Tu programa debe leer una serie de lineas de entrada. Cada linea constara de una sola palabra, esa palabra tendra una longitud de entre uno y cinco caracteres. Solo letras minúsculas del alfabeto inglés seran usadas $(a, b, c, ..., z)$
La entrada terminara por EOF (fin de archivo).
Salida
La salida es un número entero $idx (1 \leq idx \leq 83681)$ que representa la posicion en la lista si la palabra es válida o $0$ si la palabra es inválida.
Ayuda
Estructuras de Datos