Scenariusz
Mieszkasz w kraju, w którym odbywają się wybory prezydenckie. Każdy głosujący otrzymuje jeden głos, dlatego istnieje mocno zakorzeniony system dwupartyjny. (Istnieją strony trzecie, ale nie mają prawie żadnych głosów).
Najnowsze badanie opinii pokazuje wyścig w martwym upale:
- 49%: Alberto Arbusto
- 49%: Jorge Sangre
- 2%: różni drobni kandydaci
Wymagania programu
Zostałeś zatrudniony przez rząd do napisania części oprogramowania do liczenia głosów. Otrzymasz, na standardowym wejściu, nieuporządkowaną listę głosów jednego okręgu, po jednym w wierszu, w następujący sposób:
Alberto Arbusto
Jorge Sangre
Jorge Sangre
Alberto Arbusto
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
Jorge Sangre
Juan Perez
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
…
i po przeczytaniu wszystkich głosów, wyświetla podsumowanie liczby głosów, jakie otrzymał każdy kandydat, posortowane w kolejności malejącej według liczby głosów, tak jak poniżej:
492 Jorge Sangre
484 Alberto Arbusto
18 Juan Perez
6 Mickey Mouse
Podstępna część
Jesteś partyzantem, który chce ukraść wybory dla jednego z dwóch głównych kandydatów (możesz wybrać, który z nich). Twój program musi więc celowo drukować nieprawidłowe liczby głosów, z systematycznym nastawieniem do twojego ulubionego kandydata.
Oczywiście musisz to zrobić w taki sposób, aby osoba oglądająca Twój kod lub jego dane wyjściowe prawdopodobnie nie rozpoznała nieprawidłowego zachowania.
...you can choose which one...
Czy mogę wybrać tego, którego imię jest pierwsze?
sort|uniq -c
...