CCO-10 (2010) - 6 (Shuffle)

View as PDF

Submit solution

Points: 25 (partial)
Time limit: 1.0s
Memory limit: 512M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Shuffle

Θέλετε να κρατήσετε κάποια μυστικά, έτσι εφευρίσκετε έναν απλό αλγόριθμο κρυπτογράφησης.

Θα αντιστοιχίσετε κάθε κεφαλαίο χαρακτήρα και κάτω παύλα σε κάποιο άλλο κεφαλαίο χαρακτήρα και κάτω παύλα. Με άλλα λόγια, πρόκειται για μια μετάθεση των χαρακτήρων ή, για να το θέσω αλλιώς, δημιουργήστε έναν χάρτη 1:1 και πάνω στον χάρτη αντιστοιχίστε από το {'A', 'B', ...., 'Z', '_'} στο {'A', 'B', ...., 'Z', '_'}.

Ωστόσο, θα εφαρμόσετε επανειλημμένα αυτήν την κρυπτογράφηση σε μια προσπάθεια να κάνετε το μήνυμά σας περισσότερο ασφαλές.

Είσοδος

Η είσοδος θα είναι 29 γραμμές. Οι πρώτες 27 γραμμές καθεμία θα περιέχουν έναν χαρακτήρα από το σύνολο {'A', 'B', ..., 'Z', '_'}. Η πρώτη από αυτές τις γραμμές αντιπροσωπεύει σε τι αντιστοιχεί ο χαρακτήρας 'A', η δεύτερη από αυτές τις γραμμές αντιπροσωπεύει σε τι αντιστοιχεί ο χαρακτήρας 'B', κοκ, μέχρι την 27η γραμμή που αντιπροσωπεύει σε τι αντιστοιχεί ο χαρακτήρας '_'.

Στην 28η γραμμή θα υπάρχει ένας ακέραιος N (1 \le N \le 2\,000\,000\,000) ο οποίος αντιπροσωπεύει τον αριθμό των φορών που θα πρέπει να εφαρμοστεί αυτή η κρυπτογράφηση.

Στην 29η γραμμή είναι το T, μία συμβολοσειρά με λιγότερους από 80 χαρακτήρες από το σύνολο {'A', 'B', ..., 'Z', '_'}.

Έξοδος

Σε μία γραμμή, εκτυπώστε τη συμβολοσειρά που δημιουργήθηκε αφού ανακατέψατε το T συνολικά N φορές, χρησιμοποιώντας την δεδομένη μετάθεση ανακατέματος.

Παράδειγμα

input

B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
A
3
I_LOVE_THE_CCC

output

LCORYHCWKHCFFF

Comments

There are no comments at the moment.