"""
Created on Thu Nov  7 17:54:52 2024
@author: vila
"""
def fill_up(capacity, lc):
    acc = 0
    n = 0
    for c in lc:
        acc += c
        n += 1
        if acc >= capacity:
            return True, n
    return False, 0

def select_full(lt):
    lsel = []
    for name, cap, lc in lt:
        is_full, n = fill_up(cap, lc)
        if is_full:
            lsel.append( (name, n) )
    return lsel

def update_full(lt):
    for t in lt:
        name, cap, lc = t
        is_full, n = fill_up(cap, lc)
        if is_full:
            last = lc[n-1]
            del lc[n-1:]
            lc.append(cap-sum(lc))
