Donat un llistat d’estudiants i un llistat de titulacions, volem assignar els estudiants a les titulacions en funció de les seves notes de selectivitat i veure la nota de tall de cada titulació juntament amb el nombre de places lliures.
Per a cada estudiant es disposa de la informació següent: el seu nom (un text), el seu DNI (un enter únic de 8 dígits com a molt), la seva nota de selectivitat (un real entre 5 i 10 amb dos dígits decimals de precisió), i una llista de titulacions (textos sense repeticions) en ordre de preferència.
Per a cada titulació es disposa de la informació següent: el seu nom (un text) i el seu nombre de places disponibles.
El procés d’assignació és el següent: Els estudiants es processen segons la seva nota (de la més alta a la més baixa, i de DNI més baix a DNI més alt en cas d’empat per nota). Cada estudiant és assignat a la primera titulació de les seves preferències que encara tingui places lliures. Si cap de les seves titulacions preferides té places lliures, l’estudiant no reb cap assignació.
La nota de tall d’una titulació és la nota de selectivitat més baixa dels estudiants assignats, o zero si no n’hi ha cap d’assignat.
Descarregue-vos el fitxer code.py. Les estructures de dades i les funcions per llegir-les ja se us donen implementades. El programa principal també. Per tant, la vostra feina és completar les funcions no implementades que el programa principal utilitza. Especifiqueu adientment aquestes funcions amb un docstring.
Entrada
L’entrada conté les llistes d’estudiants i de titulacions.
Sortida
La sortida ha de generar dos llistats, cadascun començant per tres guions. El primer llistat dóna l’assignació de titulació de cada estudiant, juntament amb el seu DNI i nom, ordenat per DNI. Si no té cap titulació assignada cal escriure None. El segon llistat dóna, per cada titulació, el seu nom, la seva nota de tall i el nombre de places lliures, i està ordenat per nota de tall decreixent (i per ordre alfabètic del nom de la titulació en cas d’empat).
Input
5 Pere 555 8.50 Art Laia 111 8.50 Art,Dret,Economia Sara 333 5.00 Economia,Art Elia 444 9.90 Art,Dret Joan 222 7.70 Dades 6 Art 2 Dret 1 Economia 2 Dades 2 Fisica 2 Literatura 2
Output
--- 111 Laia Art 222 Joan Dades 333 Sara Economia 444 Elia Art 555 Pere None --- Art 8.5 0 Dades 7.7 1 Economia 5.0 1 Dret 0.0 1 Fisica 0.0 2 Literatura 0.0 2
Input
12 e0 3087811 5.29 t4,t0 e1 6365269 5.14 t1,t2,t5,t3 e2 1470322 8.25 t5 e3 1783768 9.75 t3,t2,t5,t0 e4 7891148 9.15 t5,t0,t3 e5 3575784 8.27 t1,t4,t2,t3 e6 9579995 7.84 t0,t4,t5 e7 5994585 6.72 t3 e8 7347353 5.11 t2,t5,t3 e9 7229835 7.72 t5,t2,t1 e10 1294699 5.68 t2,t5 e11 8197761 7.52 t4,t5 6 t4 5 t5 4 t1 4 t2 4 t3 2 t0 4
Output
--- 1294699 e10 t2 1470322 e2 t5 1783768 e3 t3 3087811 e0 t4 3575784 e5 t1 5994585 e7 t3 6365269 e1 t1 7229835 e9 t5 7347353 e8 t2 7891148 e4 t5 8197761 e11 t4 9579995 e6 t0 --- t0 7.84 3 t5 7.72 1 t3 6.72 0 t4 5.29 3 t1 5.14 2 t2 5.11 2
Input
5 Felix 555 8.50 Art,Dret Arnau 551 8.50 Art,Dret Clara 552 8.50 Art,Dret Marta 554 8.50 Art,Dret Berta 553 8.50 Art,Dret 2 Art 2 Dret 2
Output
--- 551 Arnau Art 552 Clara Art 553 Berta Dret 554 Marta Dret 555 Felix None --- Art 8.5 0 Dret 8.5 0