COCI-11 (2011) - Γύρος #3 - 2 (Dhondt)

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
Dhondt

Στις αρχές Δεκεμβρίου διεξήχθησαν βουλευτικές εκλογές στη χώρα μας. Η Κροατία χωρίζεται σε 10 εκλογικές περιφέρειες. Από κάθε περιφέρεια εκλέγονται 14 κοινοβουλευτικοί εκπρόσωποι. Καθένας από τους ψηφοφόρους ψηφίζει ένα από τα λίγα κόμματα. Μετά την ψηφοφορία, οι εκπρόσωποι εκλέγονται με τη μέθοδο D'Hondt (D"Ont).
Με αυτή τη μέθοδο, πρώτα επιλέγουμε κόμματα που συγκέντρωσαν τουλάχιστον το 5% των ψήφων. Στη συνέχεια, ο αριθμός των ψήφων καθενός από τα επιλεγμένα κόμματα διαιρείται με κάθε αριθμό από το 1 έως το 14. Με αυτόν τον τρόπο εκχωρούμε 14 ορθολογικούς αριθμούς - ας τους ονομάσουμε "βαθμολογίες" - σε κάθε ένα από τα μέρη.
Ο πρώτος από τους 14 εκπροσώπους σε μια περιφέρεια επιλέγεται από ένα κόμμα με τη μεγαλύτερη βαθμολογία. Ο δεύτερος εκπρόσωπος επιλέγεται από ένα κόμμα με τη δεύτερη μεγαλύτερη βαθμολογία. Ο τρίτος... Αυτή η διαδικασία συνεχίζεται μέχρι να εκλεγούν και οι 14 θέσεις. Παρατήρηση: Θα υπάρχει πάντα ένας μοναδικός τρόπος εκλογής των αντιπροσώπων, δηλαδή δεν θα είναι ίσες δύο βαθμολογίες.
Γράψτε ένα πρόγραμμα που, δεδομένου του συνολικού αριθμού ψηφοφόρων και του αριθμού των ψήφων που κέρδισε κάθε κόμμα, καθορίζει πόσοι πολιτικοί εξελέγησαν ως εκπρόσωποι της περιφέρειας από κάθε κόμμα. Ορισμένα κόμματα έχουν κερδίσει αμελητέο αριθμό ψήφων και δεν θα συμμετέχουν - αυτός είναι ο λόγος που ο συνολικός αριθμός των ψηφοφόρων μπορεί να μην είναι ίσος με το άθροισμα των ψήφων στη λίστα.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει έναν θετικό ακέραιο αριθμό X\;(1 \leq X \leq 2\,500\,000), συνολικό αριθμό ψηφοφόρων στην περιοχή. Η δεύτερη γραμμή εισόδου περιέχει έναν θετικό ακέραιο αριθμό N\;(0 \leq N \leq 10), τον αριθμό των μερών που εξετάζουμε. Οι επόμενες N γραμμές περιέχουν δύο θετικούς ακέραιους αριθμούς που διαιρούνται με ένα μόνο διάστημα: αναγνωριστικό κόμματος (κεφαλαίο γράμμα του αγγλικού αλφαβήτου) και έναν θετικό ακέραιο G\;(0 \leq G \leq 250\,000), αριθμός ψήφων που κέρδισε αυτό το κόμμα.

Έξοδος

Το αποτέλεσμα αποτελείται από αριθμό γραμμών ίσο με τον αριθμό των κομμάτων που είχαν τουλάχιστον 5% των ψήφων. Για καθένα από αυτά τα κόμματα, εκτυπώστε ένα αναγνωριστικό κόμματος και έναν αριθμό κοινοβουλευτικών εκπροσώπων που εκλέγονται από αυτό το κόμμα. Οι γραμμές πρέπει να ταξινομούνται κατά αναγνωριστικά, αλφαβητικά.

Βαθμολογία

Στο 30% των δοκιμαστικών περιπτώσεων, κάθε συμβαλλόμενο μέρος θα έχει τουλάχιστον 5% των ψήφων.

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

input

235217
3
A 107382
C 18059
B 43265

output

A 9
B 4
C 1

input

245143
4
F 14845
A 104516
B 52652
C 14161

output

A 8
B 4
C 1
F 1

input

206278
5
D 44687
A 68188
C 7008
B 48377
G 9665

output

A 6
B 4
D 4

Comments

There are no comments at the moment.