Código César P55172


Statement
 

pdf   zip

html

El código César es un método antiguo (y no particularmente seguro) de cifrado. En este problema consideramos la siguiente variante: Dado un texto en castellano, con un léxico más o menos usual, primero eliminamos todas las tildes, y cambiamos todas las ‘ñ’ por ‘n’. Después, convertimos las letras minúsculas a mayúsculas. A continuación, eliminamos cualquier carácter que no sea una letra, un salto de línea, un espacio, o cualquiera de los caracteres siguientes:

                    -  .  ,  ;  :  ?  !  (  )

Finalmente, escogemos al azar un número k entre 1 y 25, y transformamos cada letra ℓ en ℓ + k, cíclicamente. Por ejemplo, con k = 2, ‘A’ pasaría a ser ‘C’, ‘B’ pasaría a ser ‘D’, …, ‘X’ pasaría a ser ‘Z’, ‘Y’ pasaría a ser ‘A’, y ‘Z’ pasaría a ser ‘B’.

¿Podéis descifrar un texto dado?

Entrada

La entrada consiste en el resultado de cifrar un texto como se ha explicado anteriormente. El texto proporcionado tiene entre 300 y 3000 caracteres. No hay líneas vacías, y cada línia no tiene más de 80 caracteres.

Salida

Escribid el texto una vez descifrado.

Puntuación

Hay 10 juegos de pruebas privados, todos diferentes al ejemplo, y cada uno vale 10 puntos.

Observación

Aunque no se podrá controlar de manera automàtica, para este problema sólo se evaluará el mejor de los 10 primeros envíos de cada participante. Los demás, si existen, se eliminarán después de la prueba.

Pista

Recordad que este código

    string s;
    while (getline(cin, s)) {
        ...
    }

permite leer todas las líneas de la entrada hasta su final, almacenando cada vez una línea completa en el string s.

Public test cases
  • Input

    QZFAZOQE RGQ PQDDUNMPM XM QEFMFGM PQX BDUZOUBQ RQXUL.
    -MX ZA EQD KM NQXXA, PQ ZMPM EUDHQ!
    -PUVA QX BDARQEAD PQ QEFQFUOM PQ XM GZUHQDEUPMP.
    QZFAZOQE RGZPUQDAZ XM QEFMFGM QZ GZ TADZA K QX MXOMXPQ DQGZUA MX
    OAZOQVA QZ EQEUAZ BMDM PQOUPUD XA CGQ PQNUM TMOQDEQ OAZ QX YQFMX.
    -BAPDUMYAE -BDABGEA- TMOQD AFDM QEFMFGM. XM YUM, BAD QVQYBXA.
    -A XM YUM -PUVA OMPM GZA PQ XAE OAZOQVMXQE. K MOMNMDAZ PUEBGFMZPA.
    -CGQ OAEM YME DMDM! -PUVA QX ARUOUMX BDUYQDA PQ XM RGZPUOUAZ-.
    QEFQ OADMLAZ PQ BXAYA ZA CGUQDQ RGZPUDEQ QZ QX TADZA;
    TMNDM CGQ FUDMDXA OAYA PQEQOTA.
    XAE RGZPUPADQE XA MDDAVMDAZ MX YAZFAZ PQ NMEGDM QZ CGQ KMOUM
    XM SAXAZPDUZM YGQDFM.
    -FDMQYQ XME PAE OAEME YME BDQOUAEME PQ XM OUGPMP
    -PUVA PUAE M GZA PQ EGE MZSQXQE.
    K QX MZSQX EQ XXQHA QX OADMLAZ PQ BXAYA K QX BMVMDA YGQDFA.
    -TME QXQSUPA NUQZ -PUVA PUAE-.
    QZ YU VMDPUZ PQX BMDMUEA QEFQ BMVMDUXXA OMZFMDM QFQDZMYQZFQ,
    K QZ YU OUGPMP PQ ADA QX BDUZOUBQ RQXUL DQBQFUDM YUE MXMNMZLME.
    

    Output

    ENTONCES FUE DERRIBADA LA ESTATUA DEL PRINCIPE FELIZ.
    -AL NO SER YA BELLO, DE NADA SIRVE!
    -DIJO EL PROFESOR DE ESTETICA DE LA UNIVERSIDAD.
    ENTONCES FUNDIERON LA ESTATUA EN UN HORNO Y EL ALCALDE REUNIO AL
    CONCEJO EN SESION PARA DECIDIR LO QUE DEBIA HACERSE CON EL METAL.
    -PODRIAMOS -PROPUSO- HACER OTRA ESTATUA. LA MIA, POR EJEMPLO.
    -O LA MIA -DIJO CADA UNO DE LOS CONCEJALES. Y ACABARON DISPUTANDO.
    -QUE COSA MAS RARA! -DIJO EL OFICIAL PRIMERO DE LA FUNDICION-.
    ESTE CORAZON DE PLOMO NO QUIERE FUNDIRSE EN EL HORNO;
    HABRA QUE TIRARLO COMO DESECHO.
    LOS FUNDIDORES LO ARROJARON AL MONTON DE BASURA EN QUE YACIA
    LA GOLONDRINA MUERTA.
    -TRAEME LAS DOS COSAS MAS PRECIOSAS DE LA CIUDAD
    -DIJO DIOS A UNO DE SUS ANGELES.
    Y EL ANGEL SE LLEVO EL CORAZON DE PLOMO Y EL PAJARO MUERTO.
    -HAS ELEGIDO BIEN -DIJO DIOS-.
    EN MI JARDIN DEL PARAISO ESTE PAJARILLO CANTARA ETERNAMENTE,
    Y EN MI CIUDAD DE ORO EL PRINCIPE FELIZ REPETIRA MIS ALABANZAS.
    
  • Information
    Author
    Salvador Roura
    Language
    Spanish
    Official solutions
    C++
    User solutions