Αρχική > 24ος ΠΔΠ

24ος ΠΔΠ Γ' Φάση
Παλίνδρομο (minpali)

[30 Μονάδες]

Παλίνδρομο ονομάζεται μία συμβολοσειρά που διαβάζεται το ίδιο τόσο από αριστερά προς τα δεξιά όσο και από δεξιά προς τα αριστερά. Η συμβολοσειρά «NΙΨΟNΑNΟΜΗΜΑΤΑMHMONANΟΨΙN», για παράδειγμα, είναι ένα παλίνδρομο.

Πρόβλημα

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

Aρχεία εισόδου

Τα αρχεία εισόδου με όνομα minpali.in είναι αρχεία κειμένου με την εξής δομή: Στην πρώτη γραμμή έχουν έναν ακέραιο αριθμό \(N\) (\(1 \leq N \leq 10.000.000\)), το πλήθος των χαρακτήρων της συμβολοσειράς. Στη δεύτερη γραμμή έχουν διαδοχικά τους \(N\) χαρακτήρες της συμβολοσειράς.

Aρχεία εξόδου

Τα αρχεία εξόδου με το όνομα minpali.out είναι αρχεία κειμένου με την εξής δομή: έχουν μία γραμμή με ακριβώς έναν αριθμό, το μήκος σε χαρακτήρες του μικρότερου παλίνδρομου που μπορεί να κατασκευαστεί έχοντας τη δοθείσα συμβολοσειρά ως πρόθεμα.

Παραδείγματα αρχείων εισόδου - εξόδου

1o

minpali.in minpali.out
6
abcdef
11

2o

minpali.in minpali.out
10
abccbbabbc
13

Εξήγηση παραδειγμάτων: Τα μικρότερα δυνατά παλίνδρομα είναι τα «abcdefedcba» και «abccbbabbccba», αντίστοιχα, με μήκη \(11\) και \(13\).

Όρια

Μορφοποίηση: Στην έξοδο, όλες οι γραμμές τερματίζουν με ένα χαρακτήρα newline.
Μέγιστος χρόνος εκτέλεσης: \(1\) sec
Μέγιστη διαθέσιμη μνήμη: \(64\) MB