Submit | All submissions | Best solutions | Back to list |
PROG0330 - Caesar cipher |
The Caesar cipher is a classic method in cryptography to encode (encryption) and decode (decryption) text messages. The method is named after Julius Caesar, who used it in his private correspondence with his generals.
Encryption is executed by replacing each letter in the plain text by a letter some fixed number of positions down the alphabet. In doing this, the alphabet is considered to be circular, meaning that the letter Z is again followed by the letter A. Hence, also terms rotation or shift are used for this operation. For example, in rot3 (a rotation over three positions) the letter B is replaced during encryption by the letter E.
Deciphering a text message is done using the reverse operation. In this case a rotation or shift is performed to the left, instead of to the right as during encryption. For example, in rot3 the letter E is replaced during deciphering by the letter B.
Input
The first line of the input contains a number $n \in \mathbb{N}$ that indicates the number of positions a text is rotated during execution of the Caesar cipher. This is followed by a line containing a sentence that was encrypted using a Caesar rotation over $n$ positions. During this encryption, only letters of the alphabet were rotated (both upper case and lower case letters). All other characters (digits, punctuation marks, spaces, …) have been kept unchanged in the encrypted text.
Output
The sentence in plain text.
Example
Input:
20
Ylluly boguhog ymn.
Output:
Errare humanum est.
Het Caesarcijfer is een klassieke manier om tekstberichten te coderen (versleutelen) en te decoderen (ontsleutelen). Het is vernoemd naar Julius Caesar, die het gebruikte om te communiceren met zijn veldheren.
De versleuteling werkt door elke letter van het alfabet te vervangen door een letter die enkele plaatsen verder in het alfabet voorkomt. Hierbij wordt een circulair alfabet beschouwd, wat betekent dat na de letter Z opnieuw de letter A volgt. Vandaar dat ook de term rotatie of verschuiving gebruikt wordt voor deze operatie. Bijvoorbeeld, bij rot3 (een rotatie over drie posities) wordt de letter B tijdens het versleutelen vervangen door de letter E.
Het onsleutelen van een tekst gebeurt door de omgekeerde bewerking uit te voeren. In dit geval wordt er dus een rotatie of verschuiving naar links uitgevoerd, in plaats van naar rechts zoals bij de versleuteling. Bijvoorbeeld, bij rot3 wordt de letter E tijdens het ontsleutelen vervangen door de letter B.
Invoer
De eerste regel van de invoer bevat een getal $n \in \mathbb{N}$ dat aangeeft over hoeveel posities er geroteerd wordt bij een Caesarrotatie. Daarna volgt een regel die een zin bevat die gecodeerd werd aan de hand van een Caesarrotatie over $n$ posities. Hierbij werden enkel de letters van het alfabet geroteerd (zowel hoofdletters als kleine letters). Alle overige karakters (cijfers, leestekens, spaties, …) bleven ongewijzigd in de gecodeerde tekst.
Uitvoer
De gedecodeerde zin.
Voorbeeld
Invoer:
20
Ylluly boguhog ymn.
Uitvoer:
Errare humanum est.
Added by: | Peter Dawyndt |
Date: | 2013-02-16 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |