Die Herausforderung
Ihr Ziel ist es, das kürzestmögliche Programm zu schreiben, das eine Liste von Ereignissen (z. B. Upvote, Downvote usw.) erstellt und den Ruf des Benutzers und die von ihm erworbenen Berechtigungen zurückgibt.
Was für Veranstaltungen?
Hier ist eine Übersicht der Ereignisse, geordnet nach verdienter Reputation:
-15 answer unaccepted
-10 answer unupvoted
-5 question unupvoted
-2 answer downvoted
-2 question downvoted
-2 unaccept answer
-1 downvote answer
+1 join website
+1 undownvote answer
+2 accept answer
+2 question undownvoted
+2 answer undownvoted
+5 question upvoted
+10 answer upvoted
+15 answer accepted
+100 association bonus
Welche Art von Privilegien?
Hier finden Sie eine Liste der Berechtigungen, geordnet nach dem gewünschten Ruf.
1 create posts
5 participate in meta
10 remove new user restrictions
10 create wiki posts
15 vote up
15 flag posts
20 talk in chat
50 comment everywhere
75 set bounties
100 edit community wiki
100 create chat rooms
125 vote down
150 create tags
200 retag questions
250 view close votes
500 cast close and reopen votes
750 established user
1000 edit questions and answers
1000 create gallery chat rooms
1250 create tag synonyms
1500 approve tag wiki edits
2000 access to moderator tools
3500 protect questions
4000 trusted user
Eingang
Die Eingabe (bei STDIN) ist eine Liste von Ereignissen, eine pro Zeile, genau wie sie im ersten Diagramm angezeigt werden (mit Ausnahme der Reputationsmenge). Eine leere Zeile steht für das Ende der Eingabe. Hier ist ein Beispiel (am Ende sollte eine leere Zeile stehen):
join website
association bonus
answer upvoted
answer upvoted
question upvoted
answer accepted
answer upvoted
accept answer
unaccept answer
question unupvoted
accept answer
question upvoted
Ausgabe
In der ersten Ausgabezeile (zu STDOUT) sollte die Menge der akkumulierten Wiederholungen angegeben werden. In jeder Zeile danach sollte genau so, wie sie angezeigt werden, und in derselben Reihenfolge wie im zweiten Diagramm ein erworbenes Privileg aufgeführt sein. Die erwartete Ausgabe für die obige Eingabe:
153 reputation
1 create posts
5 participate in meta
10 remove new user restrictions
10 create wiki posts
15 vote up
15 flag posts
20 talk in chat
50 comment everywhere
75 set bounties
100 edit community wiki
100 create chat rooms
125 vote down
150 create tags
Regeln, Einschränkungen und Hinweise
Das ist Code Golf. Es gelten die Standard-Code-Golfregeln.
(BEARBEITEN: Da ich zwei Einträge hatte, die auf Dateien zugreifen, möchte ich darauf hinweisen, dass die Länge der Datei zur Codelänge als Teil der Standardregeln für Codegolf hinzugefügt werden muss.)