Ich bin auf dieses Problem gestoßen, als ich an einer anderen Herausforderung für diese Site arbeitete. Bei dieser Herausforderung verwende ich " Mario Kart 8 Scoring ". Die Anzahl der Punkte, die der Spieler auf Platz k erhält, wird durch dieses 1-indizierte Array dargestellt: [15,12,10,9,8,7,6,5,4,3,2,1]. Also bekommt der 1. Platz 15 Punkte, der 2. Platz 12 Punkte usw.
Es ist einfach genug, Punkte wie diese zu vergeben, aber der schwierige Teil hängt davon ab, wie ich mit Krawatten umgehe. Ich gebe jedem Spieler, der bindet, den Durchschnitt der Punkte, die für jeden Bindungsplatz vergeben wurden. Wenn zum Beispiel nur der 1. und der 2. Gleichstand besteht, erhalten beide Spieler (15 + 12) / 2 = 13,5 Punkte. (Hinweis: Sie dürfen auf das nächste int runden, also sind auch 13 oder 14 zulässig.) Dann erhalten die Plätze 3 bis 12 die normale Punktzahl für ihre Position.
Herausforderung
Bei 12 nicht-negativen Ganzzahlwerten, die absteigend sortiert sind, wird die Anzahl der Punkte ausgegeben, die jeder Spieler erhält. Sie können auch die Punkteliste [15,12,10,9, ...] als Eingabe verwenden. Beachten Sie, dass die Anzahl der Punkte, die jeder Spieler erhält, nicht von den tatsächlichen Werten der Punkte abhängt, sondern davon, wie diese mit den anderen Punkten verglichen werden.
Testfälle
- [21,21,15,14,12,9,6,5,4,3,2,1] => [ 14,14 , 10,9,8,7,6,5,4,3,2, 1]
- [20,15,15,15,10,9,8,7,6,5,4,3] => [15, 10,10,10 , 8,7,6,5,4,3,2, 1]
- Erklärung: (12 + 10 + 9) / 3 = 10,3333
- [1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7, 7 ]
- Erklärung: (15 + 12 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1) / 12 = 6,8333
- [20,20,20,20,10,10,10,9,8,7,6,5] => [ 12,12,12,12 , 7,7,7 , 5,4,3,2, 1]
- Erklärung: (15 + 12 + 10 + 9) / 4 = 11,5, (8 + 7 + 6) / 3 = 7
- [100,99,98,95,95,95,94,93,93,92,91,91] => [15,12,10, 8,8,8 , 6, 5,5 , 3, 2, 2 ]
- Erklärung: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4,5, (2 + 1) / 2 = 1,5
Verwandte: Rang eine Liste von Partituren mit "übersprungen"