Considereu la definició
struct Enviament {
string dni;
string exer;
int temps;
string res;
};
per als resultats dels enviaments fets al Jutge de P1, on @dni@
identifica l’alumne que ha fet l’enviament (és un string de 9 dígits),
@exer@ és l’identificador de l’exercici (un string de 4 o 5 caràcters),
@temps@ és l’instant de l’enviament (en segons des de l’obertura del
Jutge), i @res@ és el resultat de l’enviament, el qual pot ser
“verd”, “groc” o “vermell”.
Considereu també la definició
typedef vector<Enviament> Historia;
per guardar tots els enviaments fets al Jutge de P1. Dos enviaments no tenen mai el mateix camp |temps|.
Useu aquestes definicions en un programa que llegeixi tots els enviaments fets al Jutge, i que escrigui la informació següent:
L’alumne amb més enviaments verds (l’alumne amb dni més petit en
cas d’empat, “-” si no hi ha cap enviament verd).
L’alumne amb més exercicis verds (l’alumne amb el dni més petit
en cas d’empat, “-” si no hi ha cap alumne amb algun
exercici verd).
L’alumne amb més exercicis vermells (l’alumne amb el dni més
petit en cas d’empat, “-” si no hi ha cap alumne amb algun
exercici vermell).
L’alumne que ha intentat resoldre (amb o sense èxit) més
exercicis diferents (l’alumne amb el dni més petit en cas d’empat,
“-” si no hi ha cap enviament).
L’alumne que ha fet l’últim enviament (“-” si no hi
ha cap enviament).
L’entrada consisteix en un natural , seguit de enviaments, cadascun en una línia, amb els camps en el mateix ordre de la definició del tipus. Suposeu que hi ha, com a molt, 20 alumnes, 50 exercicis, i 1000 enviaments.
Cal escriure els cinc dni’s mencionats anteriorment amb els comptadors corresponents, seguint el format de l’exemple.
Aquest exercici és força llarg. Per compensar, no cal que la solució enviada sigui particularment eficient.
Input
15 40123456 TIPIC 1000 vermell 40123456 TIPIC 2000 groc 40123456 TIPIC 3000 verd 77777777 GABY 5100 groc 11223344 FOFO 2300 groc 11223344 FOFO 1500 vermell 40123456 FOFO 5000 verd 40123456 FOFO 4000 verd 40123456 FOFO 4400 verd 11223344 TIPIC 9600 verd 11223344 KITO 9000 groc 11223344 GABY 8200 vermell 77777777 KITO 6000 verd 77777777 FOFO 7000 verd 77777777 TIPIC 8000 verd
Output
alumne amb mes enviaments verds: 40123456 (4) alumne amb mes exercicis verds: 77777777 (3) alumne amb mes exercicis vermells: 11223344 (1) alumne amb mes exercicis intentats: 11223344 (4) alumne que ha fet l'ultim enviament: 11223344
Input
1 00110011 TIPIC 100 groc
Output
alumne amb mes enviaments verds: - alumne amb mes exercicis verds: - alumne amb mes exercicis vermells: - alumne amb mes exercicis intentats: 00110011 (1) alumne que ha fet l'ultim enviament: 00110011