Piratski kod
Η Καπετάνισσα Μαρρρτίνα, μαζί με το πειρατικό της πλήρωμα, μετά από τρεις μήνες αναζήτησης για τον χαμένο θησαυρό που ανήκε στον πιο διάσημο Ιταλό πειρατή, ξέθαψε επιτέλους ένα σεντούκι γεμάτο θησαυρό. Αλλά για να ξεκλειδώσει το σεντούκι, χρειάζεται έναν μυστικό συνδυασμό που περιγράφεται σε ένα μήνυμα μέσα σε ένα μπουκάλι δίπλα από το σεντούκι.
Το μήνυμα λέει:
Για να μπορέσει μόνο ο πιο άξιος πειρατής να ανοίξει το σεντούκι με το θησαυρό, ο συνδυασμός είναι η λύση του ακόλουθου παζλ: Μια δυαδική ακολουθία μήκους στην οποία το μοναδικό ζεύγος διαδοχικών μονάδων βρίσκεται στο τέλος της ακολουθίας είναι μια πειρατική αναπαράσταση ενός αριθμού x εάν
όπου Fib[x] συμβολίζει τον -οστό αριθμό Fibonacci. Οι αριθμοί Fibonacci ορίζονται ως εξής: , , για κάθε .
Για παράδειγμα, , , , όπου υποδηλώνει μια πειρατική αναπαράσταση ενός αριθμού.
Ένας πειρατικός κώδικας είναι μια δυαδική ακολουθία (χωρίς καμία συνθήκη για διαδοχικές μονάδες) που αναπαριστά μια ακολουθία θετικών ακεραίων. Για να τον διαβάσουμε, τον διαμερίζουμε σε όσo το δυνατόν περισσότερα μέρη τα οποία είναι πειρατική αναπαράσταση κάποιου αριθμού (και πιθανώς κάποιο θα είναι ένα επίθεμα που δεν είναι πειρατική αναπαράσταση κανενός αριθμού) και γράφουμε αυτούς τους ακεραίους σε μια ακολουθία. Για παράδειγμα, διαιρούμε το σε , όπου το τελευταίο μέρος δεν είναι πειρατική αναπαράσταση, οπότε το διαγράφουμε και διαβάζουμε μια ακολουθία .
Η τιμή ενός πειρατικού κώδικα είναι ίση με το άθροισμα των τιμών της αποκωδικοποιημένης ακολουθίας θετικών ακεραίων. Η τιμή του προηγούμενου κώδικα είναι .
Ο αγαπημένος μου αριθμός είναι το άθροισμα των τιμών όλων των πειρατικών κωδικών μήκους . Ο αριθμός αυτός μπορεί να είναι πολύ μεγάλος και έτσι ο συνδυασμός για το σεντούκι θα είναι το υπόλοιπο του modulo .
Leonarrrdo da Pisa
Αν η Μάρρρτινα δεν καταφέρει να ανοίξει το σεντούκι, το πλήρωμά της δεν θα τη θεωρήσει αρκετά άξια και θα την αναγκάσει να περπατήσει στο στενό σανίδι.
Είσοδος
Στην πρώτη και μοναδική γραμμή, θα υπάρχει ο θετικός ακέραιος .
Έξοδος
Σε μια και μοναδική γραμμή εξόδου εκτυπώστε αριθμούς, όπου ο -οστός αριθμός θα αντιπροσωπεύει την απάντηση στα παζλ για κωδικούς μήκους .
Βαθμολογία
Υποπρόβλημα | Βαθμοί | Περιορισμοί |
1 | 20 | |
2 | 40 | |
3 | 50 |
Παραδείγματα
input
4
output
0 1 4 16
Διευκρινήσεις
Οι κωδικοί μήκους είναι το και το όπου και τα δύο έχουν τιμή . Ο κωδικός έχει τιμή ενώ όλοι οι άλλοι κωδικοί μήκους έχουν τιμή . Ο κωδικός έχει τιμή , ενώ ο κωδικός έχει τιμή .
Comments