Parejas

Una empresa a veces necesita enviar a dos trabajadores para realizar
reparaciones. Para formar las parejas tiene los datos de los
trabajadores en un diccionario que asocia el nombre de un trabajador con
la lista con los nombres del resto de trabajadores con los que está
dispuesto a trabajar. Que el trabajador ’pepe’ este dispuesto a trabajar
con ’paco’ no implica que ’paco’ este dispuesto a trabajar con ’pepe’.
Es posible que algún trabajador no quiera trabajar con nadie.

1.  Cuando un trabajador deja la empresa se borra su entrada del
    diccionario, pero su nombre puede seguir apareciendo en las listas
    de otros trabajadores.

    Programa una función @limpia(preferencias)@ que, dado un diccionario
    @preferencias@ como el descrito al principio, devuelva un nuevo
    diccionario en el que se han quitado los nombres de los trabajadores
    que ya no están en la empresa, es decir, que ya no son claves.

2.  La empresa necesita enviar trabajadores a realizar reparaciones.
    Programa una función @empareja(ltrab, preferencias)@, que dada una
    lista @ltrab@ de trabajadores de la empresa destinados cada uno a
    una reparación distinta, y un diccionario @preferencias@ como el
    descrito al inicio, devuelva un diccionario que asocie cada empleado
    destinado a reparaciones con los posibles acompañantes (aquellos que
    se prefieren mutuamente pero no están destinados a otro servicio de
    reparación distinto).

Puntuación

Apartado 1: 45 puntos.

Apartado 2: 55 puntos.

Ejemplo de sessión

Información del problema

Autoría: InfBesos

Generación: 2026-01-25T13:42:18.863Z

© Jutge.org, 2006–2026.
https://jutge.org
