Selectivitat P82248


Statement
 

pdf   zip   main.py

html

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).

Public test cases
  • 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
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python