"""
Dada una cantidad c, esta es repartida entre las denominaciones 
pasada como parametros y sujeta a las restricciones indicadas
"""


def BilletesMonedas(den, res, c):
    if len(den) != len(res):
        print("Error los arreglos no son del mismo tamano")
        exit(1)

    xc = c
    u = [0] * len(den)
    # Ciclo sobre cada una de las denominaciones
    for i in range(len(den)):
        # ciclo sobre cada una de las cantidades que satisfacen la denominacion y la restriccion
        while xc >= den[i] and u[i] < res[i]:
            xc -= den[i]
            u[i] += 1

    # visualizacion
    print("cantidad:" + str(c))
    for i in range(len(den)):
        print(
            "en: "
            + str(den[i])
            + " con la restriccion de: "
            + str(res[i])
            + " se usaron: "
            + str(u[i])
        )
    print("sobra: " + str(xc))
    # prueba
    r = 0
    for i in range(len(den)):
        r += den[i] * u[i]
    r += xc
    print("Prueba: " + str(r))


"""
Prueba
"""
if __name__ == "__main__":
    d = [1000, 500, 100]
    r = [6, 4, 100]
    BilletesMonedas(d, r, 7401)
