Submit | All submissions | Best solutions | Back to list |
LEXIKON - Verschlüsseltes Lexikon |
Student Oberhuber hat aus Angst vor Hackern seine gesamten Daten verschlüsselt. Dazu setzte er die sogenannte einfache monoalphabetische Substitution ein. Dabei wird ein Schlüsselalphabet gewählt, das eine Permutation des Alphabets ist. Jedes Vorkommen des i.-ten Buchstaben des Alphabets in einem Text wird nun durch den i.-ten Buchstaben des Schlüsselalphabets ersetzt. Student Oberhuber hat nun leider vergessen, sich das Schlüsselalphabet zu notieren, aber er weiß noch, dass er ein Lexikon auf seinem Computer gespeichert hatte. Könnte ihm das dabei helfen, das Schlüsselalphabet herauszufinden?
Ihre Aufgabe ist es, mit Hilfe des verschlüsselten Lexikons das Schlüsselalphabet zu bestimmen. Sie können annehmen, dass die Wörter im Lexikon lexikographisch sortiert sind. Ein Wort w1 kommt vor einem Wort w2 wenn w1 ein Präfix von w2 ist, oder wenn der erste Buchstabe von w1, in dem sich w1 und w2 unterscheiden, vor dem entsprechenden Buchstaben in w2 im Alphabet vorkommt.
Eingabe
Die erste Zeile der Eingabe enthält die Anzahl n der Wörter im Lexikon (26 ≤ n ≤ 1000). Die folgenden n Zeilen enthalten die verschlüsselten Wörter im Lexikon in der Reihenfolge wie sie im Lexikon stehen. Sie können annehmen, dass jedes Wort nur aus Großbuchstaben besteht. Die maximale Wortlänge beträgt 20 Zeichen.
Ausgabe
Geben Sie das Schlüsselalphabet in einer Zeile aus, d. h. der i.-te Buchstabe der Zeile soll das Zeichen sein, durch das der i.-te Buchstabe des Alphabets beim Verschlüsseln ersetzt wurde. Z. B. soll der 1. Buchstabe der Ausgabe derjenige Buchstabe sein, durch den der Buchstabe 'A' ersetzt wurde. Sie können annehmen, dass man das Schlüsselalphabet eindeutig mit Hilfe der Eingabedaten bestimmen kann.
Beispiel 1
Eingabe: 26 UAFU OGUYW MNUGASV HVARU VMNW FWLRGWR IWAF NWRVA STHSU ZQASVRR XSAW ASCU CSXV TWYVCOVG WBMUG DUDU JQVOVM GWCVW BSVGGU RUTIW QTSFWGC YSMRWG PNSBXVK LGUK KUTXVV EQAQ Ausgabe: UOMHVFINSZXACTWDJGBRQYPLKE
Beispiel 2
Ausgabe: FEVXMACHLYBRSKNTGZDQWJUIOP
Added by: | Adrian Kuegel |
Date: | 2008-12-04 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | ADA95 ASM32 BASH BF C CSHARP CPP C99 CLPS LISP sbcl LISP clisp D FORTRAN HASK ICON ICK JAVA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON RUBY SCM guile SCM qobi ST TEXT WHITESPACE |