Selectivitat P50335


Statement
 

pdf   zip

thehtml

Donats un llistat d’estudiants i un llistat de titulacions, volem assignar els estudiants a les titulacions en funció de les notes de selectivitat, i també calcular la nota de tall i el nombre de places lliures sense ocupar de cada titulació.

Per a cada estudiant es disposa del nom (una paraula, potser repetida), el DNI (un natural identificador entre 0 i 108 − 1), la nota de selectivitat (un real entre 5 i 10 amb cinc dígits decimals de precisió), i una llista amb entre 1 i 10 titulacions diferents (paraules separades amb comes) en ordre de preferència.

Per a cada titulació es disposa del nom (una paraula identificadora) i el nombre de places disponibles (un natural entre 1 i 104). Totes les preferències dels estudiants apareixen en aquest llistat.

Per assignar les titulacions, els estudiants es processen segons la nota, de la més alta a la més baixa (i de DNI més baix a més alt en cas d’empat). Cada estudiant és assignat a la primera preferència que encara tingui places lliures. Si no queda cap plaça lliure per a algun estudiant, no rep cap assignació.

La nota de tall d’una titulació es defineix com la nota de selectivitat més baixa dels estudiants assignats, o bé 0.00000 si no n’hi ha cap.

Entrada

L’entrada conté els dos llistats, precedits respectivament del nombre d’estudiants i del de titulacions. Ambdós nombres es troben entre 1 i 104. Totes les paraules donades tenen entre 1 i 10 lletres minúscules.

Sortida

Escriviu dos llistats, cadascun començant amb tres guions. El primer ha de tenir el DNI, nom i titulació assignada a cada estudiant, ordenat per DNI. Per als estudiants sense titulació cal escriure “None”. El segon llistat ha de tenir cada titulació amb la nota de tall i el nombre final de places lliures, ordenat decreixentment per nota de tall (en ordre alfabètic en cas d’empat).

Puntuació

  • Cas A:  ‍60% Punts ‍

    Casos on el nombre d’estudiants, el nombre de titulacions, i el nombre de places disponibles de cada titulació està afitat per 100, com tots els exemples d’entrada.

  • Cas B:  ‍40% Punts ‍

    Resta de casos.

Public test cases
  • Input

    5
    pere 555 8.50000 art
    laia 111 8.50000 art,dret,economia
    sara 333 5.00000 economia,art
    elia 444 10.00000 art,dret
    joan 222 7.70000 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.50000 0
    dades 7.70000 1
    economia 5.00000 1
    dret 0.00000 1
    fisica 0.00000 2
    literatura 0.00000 2
    
  • Input

    12
    ea 3087811 5.29001 te,ta
    eb 6365269 5.14002 tb,tc,tf,td
    ec 1470322 8.25003 tf
    ed 1783768 9.75004 td,tc,tf,ta
    ee 7891148 9.15005 tf,ta,td
    ef 3575784 8.27006 tb,te,tc,td
    eg 9579995 10.00000 ta,te,tf
    eh 5994585 6.72008 td
    ei 7347353 5.11009 tc,tf,td
    ej 7229835 7.72010 tf,tc,tb
    ek 1294699 5.68011 tc,tf
    el 8197761 7.52012 te,tf
    6
    te 5
    tf 4
    tb 4
    tc 4
    td 2
    ta 4
    

    Output

    ---
    1294699 ek tc
    1470322 ec tf
    1783768 ed td
    3087811 ea te
    3575784 ef tb
    5994585 eh td
    6365269 eb tb
    7229835 ej tf
    7347353 ei tc
    7891148 ee tf
    8197761 el te
    9579995 eg ta
    ---
    ta 10.00000 3
    tf 7.72010 1
    td 6.72008 0
    te 5.29001 3
    tb 5.14002 2
    tc 5.11009 2
    
  • Input

    5
    marta 555 8.50000 arnau,marta
    arnau 551 8.50000 arnau,marta
    arnau 552 8.50000 arnau,marta
    marta 554 8.50000 arnau,marta
    arnau 553 8.50000 arnau,marta
    2
    arnau 2
    marta 2
    

    Output

    ---
    551 arnau arnau
    552 arnau arnau
    553 arnau marta
    554 marta marta
    555 marta None
    ---
    arnau 8.50000 0
    marta 8.50000 0
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    C++ Python
    User solutions
    C++ Python