Lo scenario
Vivi in un paese che sta avendo elezioni presidenziali. Ogni elettore ottiene un voto, e quindi esiste un sistema a due partiti saldamente radicato. (Esistono terze parti, ma quasi nessun voto).
L'ultimo sondaggio d'opinione mostra la gara in un caldo morto:
- 49%: Alberto Arbusto
- 49%: Jorge Sangre
- 2%: vari candidati minori
I requisiti del programma
Sei stato assunto dal governo per scrivere parte del software di conteggio dei voti. Ti verrà dato, su input standard, un elenco non ordinato dei voti di un distretto, uno per riga, in questo modo:
Alberto Arbusto
Jorge Sangre
Jorge Sangre
Alberto Arbusto
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
Jorge Sangre
Juan Perez
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
…
e, dopo aver letto tutti i voti, genera un riepilogo di quanti voti ha ottenuto ciascun candidato, ordinati in ordine decrescente per numero di voti, in questo modo:
492 Jorge Sangre
484 Alberto Arbusto
18 Juan Perez
6 Mickey Mouse
La parte subdola
Sei un hacker partigiano che vuole rubare le elezioni per uno dei due candidati principali (puoi scegliere quale). Quindi, il tuo programma deve deliberatamente stampare conteggi errati dei voti, con un orientamento sistematico nei confronti del tuo candidato preferito.
Ovviamente, devi farlo in modo tale che una persona che guarda il tuo codice o il suo output probabilmente non riconosca il comportamento errato.
...you can choose which one...
Posso scegliere quello il cui nome è il primo?
sort|uniq -c
...