È tempo ... di contare i voti!
Oggi ci sono elezioni locali in tutto il mio paese. Qui, il numero di posti per ciascuna parte viene deciso usando il metodo D'Hondt . Il tuo obiettivo è quello di implementare un programma o una funzione che deciderà quanti posti ogni parte ottiene, nel minor numero di byte.
Per questo metodo ci sono un numero fisso di posti da distribuire, ed è fatto così:
- A ogni parte viene assegnato un numero variabile, che inizia con il numero di voti ottenuti.
- Quindi il primo seggio viene assegnato alla parte che ha il valore più grande nella sua variabile e quindi quel valore per quella parte diventa il loro numero totale di voti diviso
1+seats, arrotondato per difetto, dove siseatstrova il numero di seggi che ha già (quindi dopo aver ottenuto il in primo luogo, i loro voti sono divisi per 2 e per 3 dopo aver ottenuto il secondo seggio). - Successivamente i voti delle parti vengono nuovamente confrontati. Il processo continua fino a quando tutti i posti non sono stati assegnati.
Se il numero più alto è un pareggio tra due o più parti, viene risolto in modo casuale (deve essere casuale, non può essere solo il primo dei due nell'elenco).
Ingresso
Riceverai un numero N, che indicherà il numero di seggi disponibili e un elenco dei voti ricevuti da ciascuna parte, in qualunque formato tu preferisca. Esempio:
25
12984,7716,13009,4045,1741,1013
Produzione
Dovresti fornire un elenco dei posti assegnati a ciascuna parte. Nell'esempio sopra sarebbe qualcosa di simile
8,5,9,2,1,0
Dovrebbero essere nello stesso ordine delle parti nell'input.
Esempi
5
3,6,1
outputs: 2,3,0
135
1116259,498124,524707,471681,359705,275007,126435
outputs: 45,20,21,19,14,11,5
indennità
-20% di bonus se prendi il nome delle parti come input e forniscile nell'output, come ad esempio:
25
cio:12984,pcc:7716,irc:13009,icb:4045,cub:1741,bb:1013
outputs
cio:8
pcc:5
irc:9
icb:2
cub:1
bb:0