COI-10 (2010) - 3 (Loza)

View as PDF

Submit solution

Points: 50 (partial)
Time limit: 0.7s
Memory limit: 32M

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

Επιστήμονες στην Ανταρκτική ανακάλυψαν ένα νέο είδος! Έβγαλαν ένα δείγμα και το πήγαν στο εργαστήριο για δοκιμές.
Γρήγορα παρατήρησαν ότι το είδος αναπαράγεται αρκετά συχνά και για αυτό απαιτείται μόνο ένας γονέας. Ωστόσο, αφού ο γονέας αναπαραχθεί δύο φορές, γίνεται στείρος και δεν μπορεί να αναπαραχθεί πάλι.
Παρόλα αυτά ο αριθμός των δειγμάτων στο εργαστήριο εκτινάχθηκε στα ύψη και η ανάγκη για γενεαλογικά δέντρα εμφανίστηκε.
Αποφάσισαν να σχεδιάσουν το δέντρο σε ένα απλό πρόγραμμα επεξεργασίας κειμένου χρησιμοποιώντας τις ακόλουθες συμβάσεις:
Τα ονόματα των δειγμάτων θα γραφτούν μέσα σε ωραία πλαίσια χρησιμοποιώντας χαρακτήρες '-', '|' και 'ο'. Το κεντρικό σημείο του άνω και κάτω περιγράμματος θα επισημαίνεται με τον χαρακτήρα '+'. Αν το μήκος του περιγράμματος είναι άρτιο, το '+' θα είναι στα αριστερά των δύο κεντρικών σημείων.

coi10a3-figure-1.svg

Τα κουτιά θα συνδεθούν με συνδέσμους. Ένας σύνδεσμος συνδέει δύο ή περισσότερα πλαίσια στον αντίστοιχο '+' χαρακτήρα, με το γονικό δείγμα τοποθετημένο πάνω από τα παιδιά του. Τα πλαίσια και οι σύνδεσμοι δεν πρέπει να επικαλύπτονται.

coi10a3-figure-2.svg

Εάν ο γονέας έχει ένα παιδί, χρησιμοποιείται ένας σύνδεσμο από σημείο σε σημείο (το αριστερό παράδειγμα). Αν ο γονέας έχει δύο παιδιά, χρησιμοποιείται ένας σύνδεσμος διακλάδωσης, με το μεγαλύτερο παιδί στα αριστερά και το μικρότερο στα δεξιά.

Οι σύνδεσμοι διακλάδωσης μπορούν να επεκταθούν στην οριζόντια κατεύθυνση, εφόσον υπάρχει ο αριθμός των χαρακτήρων '-' και στις δύο πλευρές παραμένει ίσος. Οι σύνδεσμοι δεν μπορούν να επεκταθούν κατακόρυφα.

Μην ανησυχείτε, δεν θα σας ζητηθεί να σχεδιάσετε το δέντρο, προσδιορίστε μόνο τον αριθμό των χαρακτήρων που απαιτούνται για να το ζωγραφίσετε. Οι χαρακτήρες διαστήματος δεν υπολογίζονται, μόνο τα '-', '|', '+' , 'o' και τα γράμματα στα ονόματα.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει έναν ακέραιο N (1 \le N \le 300\,000), αριθμό δειγμάτων στο εργαστήριο.
Τα δείγματα σημειώνονται με τους αριθμούς 1 έως N κατά σειρά γέννησης, με το παλαιότερο σημειωμένο με 1 και ο νεότερος σημειωμένος N.
Οι επόμενες N γραμμές περιέχουν σημειώσεις γέννησης όλων των δειγμάτων με τη σειρά γέννησης. Κάθε δείγμα (εκτός από το πρώτος του οποίου ο γονέας είναι άγνωστος) περιγράφεται με δύο πληροφορίες:

  • όνομα - ακολουθία το πολύ 20 πεζών χαρακτήρων αγγλικού αλφαβήτου
  • γονέας - ένας ακέραιος αριθμός που δηλώνει τον γονέα αυτού του δείγματος
Έξοδος

Η πρώτη και μοναδική γραμμή εισόδου πρέπει να περιέχει τον ελάχιστο αριθμό χαρακτήρων που απαιτούνται για τη σχεδίαση οικογενειακού δέντρου.

Βαθμολογία

Τα δεδομένα δοκιμής αξίας 50 πόντων έχουν N < 30.
Τα δεδομένα δοκιμής αξίας 75 πόντων έχουν N < 3\,000.

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

input

3
adam
kain 1
abel 1

output

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

coi10a3-figure-3.svg

Αν τους μετρήσουμε οι χαρακτήρες είναι 64.


input

12
anton
ana 1
luka 1
mia 2
tea 3
jakov 3
semiramida 5
dominik 5
anamarija 4
eustahije 4
lovro 2
lovro 11

output

371
Επεξήγηση του 2ου παραδείγματος

coi10a3-figure-4.svg

Αν τους μετρήσουμε οι χαρακτήρες είναι 371.


Comments

There are no comments at the moment.