Attack of the CipherTexts
Η Ruby είναι αποκρυπτογράφος.
Ξέρει ότι οι πολύ μεγάλοι κακοποιοί (ο κύριος
Ωστόσο, η Ruby κατάφερε να υποκλέψει ένα μήνυμα απλού κειμένου και το αντίστοιχό του, κρυπτογραφημένου κειμένου μήνυμα. Με τον όρο απλό κείμενο, εννοούμε το μήνυμα πριν κρυπτογραφηθεί (δηλαδή, ευανάγνωστες αγγλικές προτάσεις), και με τον όρο κρυπτογραφημένο κείμενο ή κρυπτοκείμενο, εννοούμε το μήνυμα μετά την κρυπτογράφηση (κάτι ασυνάρτητο). Για να κρυπτογραφηθεί ένα μήνυμα, κάθε γράμμα αντικαθίσταται με ένα νέο γράμμα, έτσι ώστε όταν διαβαστεί το μήνυμα κρυπτογραφημένου κειμένου, να μην είναι προφανές ποιο είναι το μήνυμα απλού κειμένου.
Ωστόσο, η Ruby, ως εξαιρετική αποκρυπτογράφος που είναι, γνωρίζει τον αλγόριθμο που χρησιμοποιούν ο κύριος
Η δουλειά σας είναι να αυτοματοποιήσετε τη διαδικασία αποκρυπτογράφησης για την Ruby και να βοηθήσετε να σωθεί ο κόσμος!
Είσοδος
Η είσοδος αποτελείται από τρείς συμβολοσειρές, κάθε μια απο αυτές σε ξεχωριστή γραμμή.
Η πρώτη συμβολοσειρά είναι το μήνυμα απλού κειμένου για το οποίο γνωρίζει η Ruby.
Η δεύτερη συμβολοσειρά είναι το μήνυμα κρυπτογραφημένου κειμένου που αντιστοιχεί στο μήνυμα απλού κειμένου.
Η τρίτη συμβολοσειρά είναι άλλο ένα μήνυμα κρυπτογραφημένου κειμένου.
Θεωρήστε ότι όλες οι συμβολοσειρές έχουν μήκος τουλάχιστον ενός χαρακτήρα και το πολύ ογδόντα χαρακτήρων.
Θεωρήστε επίσης ότι υπάρχουν μόνο 27 έγκυροι χαρακτήρες: τα κεφαλαία γράμματα («A» έως «Z») καθώς και ο χαρακτήρας του διαστήματος ( "
Έξοδος
Η έξοδος είναι μια συμβολοσειρά (απλού κειμένου) που αντιστοιχεί στη δεύτερο μήνυμα κρυπτοκειμένου της εισόδου. Μπορεί ωστόσο να μην είναι πάντα δυνατό να προσδιοριστεί κάθε χαρακτήρας του δεύτερου μηνύματος κρυπτοκειμένου. Αν συμβαίνει αυτό, η έξοδος θα πρέπει να έχει ένα χαρακτήρα τελείας («.») στη θέση καθενός από τα γράμματα που δεν μπορούν να προσδιοριστούν.
Παράδειγμα
input
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
UIFARVJDLACSPXOAGPYAKVNQTAPWFSAUIFAMB ZAEPH
XFABSFAWFSZACBEAQFPQMFAEPJOHAWFSZACBEAUIJOHTAIBAIB
output
WE ARE VERY BAD PEOPLE DOING VERY BAD THINGS HA HA
Επεξήγηση του 1ου παραδείγματος:
Παρατηρήστε ότι κάθε χαρακτήρας του απλού κειμένου της εξόδου εμπεριέχεται στο πρώτο μήνυμα, και έτσι, μπορεί να υπολογιστεί ολόκληρη η αντιστοίχιση.
input
THERE ARE NOT ENOUGH LETTERS
XQAZASEZASNYXSANYLWQSTAXXAZM
JSCENNYXSIACYIASXQJM
output
. .ANNOT .E.O.E TH.S
Επεξήγηση του 2ου παραδείγματος:
Παρατηρήστε ότι οι χαρακτήρες που δεν μπορούν να προσδιοριστούν είναι τα γράμματα
Comments