Copiado al portapapeles
Descripción
Érase una vez un concursante llamado Alejandro (Osito) que quería fotocopiar sus cosas de ositos para ello él se da cuenta que dispone de 3 fotocopiadoras cada fotocopiadora cuenta con una cantidad limitada de tinta que le permite realizar X, Y, Z copias respectivamente a su vez la fotocopia X es la más próxima al CP (Cuartel Patito) luego está la fotocopia Y, finalmente la fotocopiadora Z que la más lejana el conoce el valor de X, Y, Z.
Osito es el último en una cola de E estudiantes que están esperando para imprimir sus tareas. Ir a cualquier fotocopiadora no cuesta ninguna unidad de tiempo además un estudiante que necesita T copias desocupara la fotocopiadora en T unidades de tiempo.
Osito lleva un buen tiempo en la U y reconoció algunos patrones que cada estudiante.
Primero cada estudiante antes de dirigirse a alguna fotocopiadora vacía verificara que esta tenga la suficiente tinta para todas sus copias, si existen más de una que cumpla el requisito buscara la mas próxima, en caso de que no exista ninguna fotocopiadora que cumpla el requisito de estudiante se quedara esperando en la cola por siempre, si todas la fotocopiadoras están ocupadas espera la cantidad necesaria para ir a la primera en desocuparse.
Osito quiere saber cuánto tiempo tiene que esperar en la cola téngase en cuenta que osito es el último elemento de la cola.
Por ejemplo dado X=7, Y=11, Z=3 y la cola E=5 con los elementos:
E[0]=2
E[1]=8
E[2]=4
E[3]=3
E[4]=2
La espera máxima es 8, las esperas en la cola son 0, 0, 2, 2 y 8 respectivamente.
El escenario es el siguiente:
Al tiempo 0, el estudiante 0 va a la fotocopiadora X
Al tiempo 0, el estudiante 1 va a la fotocopiadora Y
No hay suficiente tinta en la fotocopiadora Y para el estudiante 2, así que tendrá que esperar al tiempo 2 para la fotocopiadora X.
Al tiempo 2, el estudiante 3 va al dispensador Y.
En este tiempo todas las fotocopiadoras están ocupadas así que el estudiante 4 tendrá que esperar. No existe la cantidad de tinta suficiente en las fotocopiadoras X y Z después que los estudiante 2 y 3 impriman sus prácticas.
Al tiempo 8 el ultimo estudiante en la cola va a la fotocopiadora Y.
Para x=4, y=0,z=3 y la cola:
E[0]=5
El programa tiene que retornar -1
Escriba un algoritmo eficiente para los siguientes casos:
La cantidad de estudiantes en la pila van de[1..100000].
Cada elemento en la pila están en el rango de[1..1000000000].
X,Y,Z son números en el rango[0.. 1000000000].
Entrada
La entrada consiste en 3 numero X, Y, Z que indican la cantidad de tinta de cada fotocopiadora y E un número que indica la cantidad de Estudiante en la cola, luego siguen E números que representa la cantidad de copias que necesita cada estudiante.
Salida
La salida consta de una línea que contiene el máximo tiempo que tendrá que esperar Osito en la cola, en caso de que Osito no pueda imprimir su trabajo se debe imprimir “-1”.