Parejas X13504


Statement
 

pdf   zip

html

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.

Sample session
>>> d1 = {'pep': ['pau', 'marc', 'eva'], 'pau': ['ana', 'lluc']}
>>> d2 = limpia(d1)
>>> d2 == {'pep': ['pau'], 'pau': []}
True

>>> serv = ['sabrenia', 'rowhn', 'storms']
>>> prefs = {'jennafer-lee': ['storms', 'sabrenia', 'sarma', 'nyera'],
...          'niloofar': ['jennafer-lee', 'rowhn', 'aaniah', 'brents'],
...          'sabrenia': [],
...          'rowhn': [],
...          'ishrat': ['aaniah', 'lyndell', 'lavarr', 'sarma', 'sanburn'],
...          'nyera': ['maxantia'],
...          'maxantia': ['nüket', 'storms', 'jerid', 'lavarr', 'nică'],
...          'sanburn': ['niloofar'],
...          'sarma': ['jerid', 'nüket', 'rowhn', 'sanburn'],
...          'aaniah': ['sabrenia', 'nică', 'niloofar', 'jennafer-lee'],
...          'nüket': ['nică', 'maxantia'],
...          'nică': ['storms', 'lavarr', 'sarma', 'rowhn'],
...          'storms': ['aaniah', 'maxantia', 'lavarr', 'nică']}
>>> emp = empareja(serv, prefs)
>>> emp == {'sabrenia': [], 'rowhn': [], 'storms': ['maxantia', 'nică']}
True
Information
Author
InfBesos
Language
Spanish
Other languages
Catalan English
Official solutions
Python
User solutions
Python