Das Szenario
Sie leben in einem Land, in dem Präsidentschaftswahlen stattfinden. Jeder Wähler erhält eine Stimme, und deshalb gibt es ein fest verankertes Zweiparteiensystem. (Dritte existieren, bekommen aber kaum Stimmen).
Die jüngste Meinungsumfrage zeigt das Rennen in einer toten Hitze:
- 49%: Alberto Arbusto
- 49%: Jorge Sangre
- 2%: verschiedene minderjährige Kandidaten
Die Programmanforderungen
Sie wurden von der Regierung beauftragt, einen Teil der Stimmzählsoftware zu schreiben. Sie erhalten bei Standardeingabe eine ungeordnete Liste mit den Stimmen eines Bezirks, eine pro Zeile, wie folgt:
Alberto Arbusto
Jorge Sangre
Jorge Sangre
Alberto Arbusto
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
Jorge Sangre
Juan Perez
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
…
und, nachdem es alle Stimmen gelesen hat, gibt es eine Zusammenfassung der Stimmen, die jeder Kandidat erhalten hat, in absteigender Reihenfolge nach der Anzahl der Stimmen, wie folgt:
492 Jorge Sangre
484 Alberto Arbusto
18 Juan Perez
6 Mickey Mouse
Der hinterhältige Teil
Sie sind ein Partisanen-Hacker, der die Wahl für einen der beiden Hauptkandidaten stehlen möchte (Sie können wählen, welcher). Daher muss Ihr Programm absichtlich falsche Stimmenzahlen ausgeben, mit einer systematischen Ausrichtung auf Ihren Lieblingskandidaten.
Natürlich müssen Sie dies so tun, dass eine Person, die sich Ihren Code oder dessen Ausgabe ansieht, das falsche Verhalten wahrscheinlich nicht erkennt.
...you can choose which one...
Kann ich den auswählen, dessen Name der erste ist?
sort|uniq -c
...