COCI-16 (2016) - Γύρος #1 - 3 (Cezar)

View as PDF

Submit solution

Points: 35 (partial)
Time limit: 1.0s
Memory limit: 64M

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

Ο Mirko έχει μια σειρά N διαφορετικών λέξεων που θέλει να κρυπτογραφήσει χρησιμοποιώντας έναν κώδικα αντικατάστασης.

Κρυπτογραφούμε το κείμενο χρησιμοποιώντας έναν κώδικα αντικατάστασης, επιλέγοντας πρώτα ένα κλειδί - μια αναδιάταξη του αγγλικού αλφαβήτου. Στη συνέχεια αντικαθιστούμε όλες τις εμφανίσεις του γράμματος "a" με το πρώτο γράμμα του κλειδιού, όλες τις εμφανίσεις του γράμματος "b" με το δεύτερο γράμμα του κλειδιού και ούτω καθεξής μέχρι το γράμμα "z".

Εκτός από τις λέξεις, ο Mirko έχει έναν πίνακα \(Α\) που αποτελείται από αριθμούς από το 1 έως το \(Ν\) που δίνονται με συγκεκριμένη σειρά (με άλλα λόγια,​ ο πίνακας \(Α\) είναι μια αναδιάταξη αριθμών από το 1 έως το \(Ν\)). Ο Mirko θέλει να επιλέξει ένα κλειδί έτσι ώστε ο πίνακας λέξεων μετά την κρυπτογράφηση και τη λεξικογραφική ταξινόμηση να αντιστοιχεί στον πίνακα A. Πιο συγκεκριμένα, θέλει η λέξη που βρίσκεται αρχικά στο ​A_i να βρίσκεται στη θέση i μετά την κρυπτογράφηση και την ταξινόμηση.

Ας υπενθυμίσουμε ότι η λεξικογραφική σειρά λέξεων είναι η σειρά με την οποία εμφανίζονται οι λέξεις στο λεξικό. Αν συγκρίνουμε δύο λέξεις, πηγαίνοντας από αριστερά προς τα δεξιά, αναζητούμε την πρώτη θέση και στις δύο λέξεις όπου διαφέρουν τα γράμματα και, βάσει αυτής, προσδιορίζουμε ποια λέξη είναι λεξικογραφικά μικρότερη. Εάν η λέξη X είναι η αρχή της λέξης Y, τότε η λέξη X είναι λεξικογραφικά μικρότερη από τη λέξη Y.

Ο Mirko αυτή τη στιγμή δεν έχει διάθεση για κρυπτογράφηση, οπότε σας ζητά ευγενικά να το κάνετε για αυτόν.

Είσοδος

Η πρώτη γραμμή εισαγωγής περιέχει τον ακέραιο αριθμό N (2 \le N \le 100).
Κάθε μία από τις ακόλουθες γραμμές N περιέχει μια λέξη που αποτελείται το πολύ από 100 πεζά γράμματα του αγγλικού αλφαβήτου. Οι λέξεις θα είναι διαφορετικές μεταξύ τους. Η τελευταία γραμμή περιέχει N ακέραιους αριθμούς – τα στοιχεία του πίνακα A.

Έξοδος

Σε περίπτωση που δεν υπάρχει λύση, βγάζουμε "NE".
Διαφορετικά, βγάζετε "DA" στην πρώτη γραμμή και στη δεύτερη γραμμή εξάγετε μια λέξη που αποτελείται από 26 διαφορετικά γράμματα του αγγλικού αλφαβήτου - το κλειδί για τον κώδικα αντικατάστασης.
Εάν υπάρχουν πολλές λύσεις, εξάγετε οποιαδήποτε.

Βαθμολογία

Σε περιπτώσεις δοκιμών αξίας 30 βαθμών συνολικά, οι λέξεις θα αποτελούνται μόνο από τα πρώτα 6 γράμματα του αγγλικού αλφαβήτου.

Παραδείγματα

input

2
ab
bc
2 1

output

DA
bacdefghijklmnopqrstuvwxyz
Επεξήγηση του 1ου παραδείγματος:

Μετά την κρυπτογράφηση, οι λέξεις γίνονται «ba», «ac», μετά τη λεξικογραφική ταξινόμηση, ο πίνακας γίνεται «ac», «ba», που σημαίνει ότι η πρώτη λέξη κατέληγε στη δεύτερη θέση και η δεύτερη λέξη στην πρώτη θέση.


input

3
abc
bcd
add
1 2 3

output

NE

input

3
bbb
ccc
ddd
2 3 1

output

DA
adbcefghijklmnopqrstuvwxyz
Επεξήγηση του 3ου παραδείγματος:

Μετά την κρυπτογράφηση, οι λέξεις γίνονται «ddd», «bbb», «ccc», μετά τη λεξικογραφική ταξινόμηση, ο πίνακας γίνεται «bbb», «ccc», «ddd», που σημαίνει ότι η πρώτη λέξη κατέληξε στη τρίτη θέση ,η τρίτη λέξη στη δεύτερη θέση και η δεύτερη λέξη στη πρώτη θέση.


Comments

There are no comments at the moment.