COCI-12 (2012) - Γύρος #2 - 3 (Lanci)

View as PDF

Submit solution

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

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

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

coci12b2-figure.svg

Δεδομένου του αριθμού των αλυσίδων και του μήκους κάθε αλυσίδας, βρείτε τον ελάχιστο αριθμό κρίκων που πρέπει να ανοίξει και να κλείσει ο Mirko για να τους δέσει όλους στο σκοτάδι σε μακριά αλυσίδα.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει τον θετικό ακέραιο αριθμό N\;(2 \le N \le 500\,000), τον αριθμό των αλυσίδων.
Η δεύτερη γραμμή εισόδου περιέχει N θετικούς ακέραιους L_i\;(1 \le L_i \le 1\,000\,000), τα μήκη των μεμονωμένων αλυσίδων.

Έξοδος

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

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

input

2
3 3

output

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

Ο Mirko μπορεί να ανοίξει τον τελευταίο κρίκο της πρώτης αλυσίδας, να τον συνδέσει με τον πρώτο κρίκο της δεύτερης αλυσίδας και να τον κλείσει.


input

3
1 1 1

output

1

input

5
4 3 5 7 9

output

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

Εδώ είναι καλύτερο να αφαιρέσετε εντελώς την αλυσίδα μήκους 3, χρησιμοποιώντας τους τρεις κρίκους της για να συνδέσετε τις υπόλοιπες αλυσίδες.


Comments

There are no comments at the moment.