Sono le elezioni! L'area in cui ci troviamo implementa il sistema di voto chiamato deflusso istantaneo (a volte chiamato voto alternativo o voto preferenziale ). Ogni elettore ordina a ciascun candidato dal più preferito al meno preferito, segnando un "1" per il proprio candidato preferito, un "2" per il secondo candidato e così via fino a quando ciascun candidato non è numerato. Lascerò che questo simpatico koala spieghi il resto:
(Immagine modificata dall'originale di Patrick Alexander , utilizzata sotto la licenza CC BY-NC-SA 3.0 AU ).
Se preferisci la tua spiegazione del deflusso istantaneo in forma di testo, c'è anche l' articolo di Wikipedia .
(Nota: è anche possibile, sebbene improbabile, che ci siano due o più candidati con il minor numero di voti. In queste situazioni, scegline uno a caso a pari probabilità ed eliminali.)
In questa sfida, la prima riga di input è un elenco di stringhe, che sono i nomi dei candidati per le elezioni. In questi esempi ho usato valori delimitati da pipe, anche se sentiti libero di adattare il formato di input in base alla tua lingua.
The Omitted Anti-neutrino|Placazoa|Alexander the Awesome|Tau Not Two|Semolina Sorcerer
Successivamente ci sono nlinee di input che sono anche elenchi di stringhe, ognuna delle quali rappresenta un singolo voto. La prima voce rappresenta quella preferenza numero 1, la successiva la preferenza numero 2, ecc. Ad esempio:
Alexander the Awesome|Semolina Sorcerer|Tau Not Two|Placazoa|The Omitted Anti-neutrino
significherebbe che quel particolare voto ha Alexander come prima preferenza, Semolina Sorcerer come secondo, Tau Not Two come terzo, ecc. Puoi presumere che ogni voto conterrà tutti i candidati e che non ci saranno voti vuoti o incompleti.
Dati i voti come input, il tuo programma o funzione dovrebbe quindi generare il vincitore delle elezioni. Puoi trovare un'implementazione di riferimento non golfata in Python 3 qui .
Ingressi e uscite di esempio
Ingresso
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Portal Butter|Alexander the Awesome|Dionysius|Red Trainmen
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Portal Butter|Red Trainmen|Alexander the Awesome|Dionysius
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Alexander the Awesome|Red Trainmen|Portal Butter|Dionysius
Red Trainmen|Alexander the Awesome|Dionysius|Portal Butter
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Red Trainmen|Dionysius|Portal Butter|Alexander the Awesome
Alexander the Awesome|Dionysius|Red Trainmen|Portal Butter
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Alexander the Awesome|Red Trainmen|Dionysius|Portal Butter
Produzione
Alexander the Awesome
Ingresso
Depressed Billy|Sighted Citrus|Frosty Fox|Electronic Accident
Frosty Fox|Sighted Citrus|Electronic Accident|Depressed Billy
Frosty Fox|Depressed Billy|Sighted Citrus|Electronic Accident
Depressed Billy|Electronic Accident|Sighted Citrus|Frosty Fox
Depressed Billy|Sighted Citrus|Electronic Accident|Frosty Fox
Depressed Billy|Electronic Accident|Sighted Citrus|Frosty Fox
Electronic Accident|Frosty Fox|Depressed Billy|Sighted Citrus
Sighted Citrus|Frosty Fox|Electronic Accident|Depressed Billy
Frosty Fox|Depressed Billy|Sighted Citrus|Electronic Accident
Sighted Citrus|Electronic Accident|Frosty Fox|Depressed Billy
Frosty Fox|Electronic Accident|Depressed Billy|Sighted Citrus
Sighted Citrus|Frosty Fox|Depressed Billy|Electronic Accident
Produzione
Sighted Citruso Frosty Fox(a caso)
Ingresso
È possibile ottenere l'ultimo set di input qui . È una delle aree di voto di una recente elezione australiana ed è composta da 63 428 voti.
Produzione
Ross HART
