Essai Q : Calcul des scores dans un concours de programmation

 

Les organisateur d'un concours de programmation désirent avoir un programme qui leur permettra de calculer les scores des diverses équipes participant au concours et ainsi déterminer les équipes ayant obtenu les meilleurs résultats.

Le score de chaque équipe est basé sur trois éléments :

1.

le nombre total de problèmes correctement solutionnés.

2.

le temps écoulé au moment de soumettre une solution.

3.

le nombre de soumissions incorrectes.

Plus précisément, les diverses équipes doivent tout d'abord être ordonnées selon le nombre de solutions correctes qu'elles ont produites. Si deux ou plusieurs équipes ont le même nombre de solutions correctes, elles doivent ensuite être ordonnées en fonction du nombre de points de pénalité déterminé comme suit :

Entrée

Les données d'entrée (stdin) sont formées d'une série de lignes, où chaque ligne décrit les soumissions effectuées par une équipe donnée. Chaque ligne contient les éléments suivants :

Sortie

La sortie doit contenir une liste ordonnée des diverses équipes, de la meilleure à la moins bonne, ordonnée selon le nombre de solutions correctes et le nombre de points de pénalité. Pour chaque équipe, il faut donc indiquer le nombre total de problèmes résolus correctement de même que le nombre total de points de pénalités.

Point important : si une solution incorrecte a été soumise mais que par la suite le problème n'a pas été résolu correctement, alors les 20 points de pénalité ne doivent pas être pris en compte.

Exemple (1)

Exemple d'entrée

 
e00 3 A 20  B -40 B 60
e01 1 A 120
f00 2 B -20 C -100
f01 2 A 60  B  110

Exemple de sortie

 
e00 2 100
f01 2 170
e01 1 120
f00 0 0

Exemple (2)

Exemple d'entrée

 
Equipe1 5 A 20  B -40  B -50 B 60 C 190
Equipe2 2 A 120 B  150
Equipe3 3 A 100 B -120 B 140
Equipe4 3 A 60  B  110 C 150
Equipe5 0
Equipe6 4 A -50 B -100 C -160 D 190
Equipe7 4 A -50 B -100 D -160 D 200

Exemple de sortie

 
Equipe1 3 310
Equipe4 3 320
Equipe3 2 260
Equipe2 2 270
Equipe6 1 190
Equipe7 1 220
Equipe5 0 0