Una coneguda caminada popular és molt dura, i alguns dels inscrits no la poden acabar. D’altra banda, n’hi ha que hi participen sense haver-s’hi inscrit.
Els organitzadors disposen d’aquesta informació:
Feu un programa que, per a cada participant de L2, identificat pel seu dni, escrigui la seva hora d’arribada. Cal tenir en compte:
Per resoldre aquest problema, useu la definició següent:
Usant aquesta definició, implementeu i useu una funció eficient
que retorni l’hora corresponent a nom dins de la taula ordenada per nom v. Si nom hi està repetit, cal retornar "???". Si nom no hi és, cal retornar "ABANDONA". Aquesta v ha de contenir tota la informació de la L1 de l’entrada, noms repetits inclosos.
Entrada
L’entrada té L1 i L2 separades amb una línia en blanc. L1 comença amb un natural n, i segueix amb n línies, cadascuna amb un nom i una hora. L2 té una sèrie de parells dni nom. L1 està ordenada per nom. Aquest és l’únic camp de l’entrada amb possibles repetits. Per comoditat, tracteu tota l’entrada (excepte n) com si fossin strings.
Sortida
Per a cada dni de cada línia de L2, escriviu una línia amb la seva hora d’arribada, "???" o bé "ABANDONA" segons convingui. Segui el format dels exemples.
Observació
El vostre programa ha de ser eficient. Les solucions que no ho siguin seran rebutjades, ja sigui directament pel Jutge o en la posterior correcció manual.
Input
12 amalia 20:30:23 antoni 08:00:04 carles 12:45:32 carles 15:20:00 carles 10:10:12 edgar 13:30:48 marta 14:00:59 pepito 18:30:56 pepito 18:25:15 quim 17:30:18 rafel 11:25:34 rafel 11:30:10 33333333 edgar 11111111 pep 22222222 antoni 00001234 carles 12345678 xavier 40000000 marta 77777777 alicia 88888888 rafel 44444444 amalia
Output
33333333 13:30:48 11111111 ABANDONA 22222222 08:00:04 00001234 ??? 12345678 ABANDONA 40000000 14:00:59 77777777 ABANDONA 88888888 ??? 44444444 20:30:23
Input
0 22222222 rigoberta 00000000 bonifacia 11111111 segismunda
Output
22222222 ABANDONA 00000000 ABANDONA 11111111 ABANDONA
Input
1 arnau 15:03:20
Output
Input
0
Output