En arribar al Punt Verd, un client vol reciclar un nombre enter d’ítems. Els empleats del Punt Verd són els qui clasifiquen cada ítem en el seu contenidor. El temps requerit per atendre a cada client (simplificant molt) és de 1 segon per ítem. Segons l’hora del dia, es forma una cua d’usuaris esperant a que algun dels empleats del Punt Verd els atengui.
Escriu una funció que simuli la cua d’usuaris que arriben al Punt
Verd i calculi el temps total requerit per atendre tots els usuaris,
comptant que hi ha num_emp empleats del Punt Verd atenent
als usuaris. Els empleats atenen als usuaris per estricte ordre de
cua.
La capçalera de la funció és:
/**
* @pre 'num_emp' és el nombre d'empleats del Punt Verd atenent als usuaris,
* 'q' conté la successió d'enters que són els números d'ítems de cada usuari.
* @post Es retorna el temps mínim necessari per atendre a tots els usuaris.
*/
int punto_verde(int num_emp, queue<int>& c);
punto_verde(1, []) => 0 punto_verde(1, [3, 2, 4, 1]) => 10 punto_verde(2, [3, 2, 4, 1]) => 6 punto_verde(2, [1, 1]) => 1 punto_verde(3, [1, 5, 2]) => 5 punto_verde(4, [10]) => 10 punto_verde(2, [7, 4, 1, 3, 4, 1, 2, 3]) => 14