COCI-07 (2007) - Γύρος #3 - 3 (Tajna)

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 32M

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

Κάθε απόγευμα, ο μικρός Ivica στέλνει μυστικά μηνύματα στη μικρή Marica μέσω e-mail. Γνωρίζοντας ότι ηλεκτρονική επιστολή του Ivica ταξιδεύει αφύλακτα μέσω του δικτύου στο δρόμο του προς το e-mailbox της Marica, αποφάσισαν να κρυπτογραφήσουν κάθε μήνυμα χρησιμοποιώντας τον ακόλουθο αλγόριθμο:

  • Ας υποθέσουμε ότι το μήνυμα του Ivica αποτελείται από N χαρακτήρες.

  • Ο Ivica πρέπει πρώτα να βρει έναν πίνακα που αποτελείται από R σειρές και C στήλες έτσι ώστε R \le C και R·C = N. Εάν υπάρχουν περισσότεροι από ένας τέτοιοι πίνακες, ο Ivica επιλέγει αυτόν με τις περισσότερες σειρές.

  • Ο Ivica γράφει το μήνυμά του στον πίνακα κατά αύξουσα σειρά. Γράφει δηλαδή το πρώτο τμήμα του μηνύματος στην πρώτη σειρά, το δεύτερο τμήμα στη δεύτερη σειρά και ούτω καθεξής.

  • Το μήνυμα που στέλνει στη Marica είναι o πίνακας που διαβάζεται κατά στήλες.

Η Marica έχει βαρεθεί να ξοδεύει τον πολύτιμο χρόνο της αποκρυπτογραφώντας τα μηνύματα του Ivica, γι' αυτό πρέπει να γράψετε ένα πρόγραμμα για να το κάνει για εκείνη.

Είσοδος

Η είσοδος περιέχει το ληφθέν μήνυμα, μια σειρά από πεζά γράμματα του αγγλικού αλφαβήτου (χωρίς κενά). Ο αριθμός των γραμμάτων θα είναι μεταξύ 1 και 100.

Έξοδος

Εκτυπώστε το αρχικό (αποκρυπτογραφημένο) μήνυμα.

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

input

bok

output

bok

input

koaski

output

kakosi

input

boudonuimilcbsai

output

bombonisuuladici
Επεξήγηση του 3ου προβλήματος:

Ο Ivica θέλει να στείλει το μήνυμα "bombonisuuladici" που περιέχει 16 γράμματα. Μπορεί να χρησιμοποιήσει 1 \times 16, 2 \times 8 ή 4 \times 4 πίνακα. Από αυτούς, ο 4 \times 4 έχει τις περισσότερες σειρές. Όταν το μήνυμα είναι γραμμένο σε αυτόν, ο πίνακας φαίνεται σαν αυτό:

coci07c3-figure.svg


Comments

There are no comments at the moment.