J'ai rencontré ce problème en travaillant sur un autre défi que je fais pour ce site. Dans ce défi, j'utilise " Mario Kart 8 Scoring ". Le nombre de points que le joueur en k ème place obtient est représenté par ce tableau à 1 index: [15,12,10,9,8,7,6,5,4,3,2,1]. Donc la 1ère place obtient 15 points, la 2ème place obtient 12 points, etc.
Il est assez facile d'attribuer des points comme celui-ci, mais la partie délicate vient de la façon dont je gère les liens. Ce que je fais, c'est donner à chaque joueur à égalité la moyenne des points accordés pour chaque lieu à égalité. Par exemple, si seulement le 1er et le 2e sont à égalité, les deux joueurs obtiennent (15 + 12) / 2 = 13,5 points. (Remarque: vous êtes autorisé à arrondir au nombre entier le plus proche, donc 13 ou 14 sont également acceptables.) Ensuite, les 3e - 12e places obtiennent le nombre normal de points pour leur position.
Défi
Étant donné 12 scores entiers non négatifs triés de manière décroissante, affichez le nombre de points que chaque joueur obtient. Vous pouvez également prendre la liste de points [15,12,10,9, ...] en entrée. Notez que le nombre de points que chaque joueur obtient ne dépend pas des valeurs réelles des scores, mais de la façon dont ils se comparent aux autres scores.
Cas de test
- [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]
- explication: (12 + 10 + 9) / 3 = 10,3333
- [1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7, 7 ]
- explication: (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]
- explication: (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 ]
- explication: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4,5, (2 + 1) / 2 = 1,5