Kịch bản
Bạn sống ở một đất nước đang có cuộc bầu cử tổng thống. Mỗi cử tri được một phiếu bầu, và do đó có một hệ thống hai đảng cố thủ vững chắc. (Các bên thứ ba tồn tại, nhưng hầu như không nhận được bất kỳ phiếu bầu nào).
Cuộc thăm dò ý kiến mới nhất cho thấy cuộc đua trong một cái chết nóng:
- 49%: Alberto Arbusto
- 49%: Jorge Sangre
- 2%: nhiều ứng cử viên nhỏ
Các yêu cầu của chương trình
Bạn đã được chính phủ thuê để viết một phần của phần mềm kiểm phiếu. Bạn sẽ được cung cấp, trên đầu vào tiêu chuẩn, một danh sách không có thứ tự gồm một phiếu bầu của khu bầu cử, mỗi phiếu trên một dòng, như thế này:
Alberto Arbusto
Jorge Sangre
Jorge Sangre
Alberto Arbusto
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
Jorge Sangre
Juan Perez
Jorge Sangre
Alberto Arbusto
Alberto Arbusto
…
và, sau khi đọc tất cả các phiếu bầu, đưa ra một bản tóm tắt về số lượng phiếu mà mỗi ứng cử viên nhận được, được sắp xếp theo thứ tự giảm dần theo số phiếu, như thế này:
492 Jorge Sangre
484 Alberto Arbusto
18 Juan Perez
6 Mickey Mouse
Phần lót tay
Bạn là một đảng phái muốn đánh cắp cuộc bầu cử cho một trong hai ứng cử viên chính (bạn có thể chọn ứng cử viên nào). Vì vậy, chương trình của bạn phải cố tình in số phiếu không chính xác , với sự thiên vị có hệ thống đối với ứng cử viên yêu thích của bạn.
Tất nhiên, bạn phải làm điều này theo cách mà một người nhìn vào mã của bạn hoặc đầu ra của mã có thể không nhận ra hành vi không chính xác.
...you can choose which one...
Tôi có thể chọn tên có tên đầu tiên không?
sort|uniq -c
...