#
# Solució 1: immersió d'eficiència
#
def coincident_1(lenters):
    return coincident_rec(lenters, 0, 0)

def coincident_rec(lenters, idx, suma):
    """Retorna el primer index `i` a partir de `idx` tal que l'element
    coincideix amb la suma dels elements de `lenters` anteriors a `i`.

    `idx` és un índex > 0.
    `suma` és la suma dels elements de `lenters` des de 0 fins a `idx` - 1.

    """
    if idx >= len(lenters):
        r = -1
    else:
        num = lenters[idx]
        if  num == suma:
            r = idx
        else:
            r = coincident_rec(lenters, idx+1, suma+num)
    return r

#
# Solució 2
#
def coincident_2(lenters):
    if len(lenters) == 0:
        r = -1
    else:
        lenters1 = lenters[:-1]
        r = coincident_2(lenters1)
        if r == -1 and sum(lenters1) == lenters[-1]:
            r = len(lenters1)
    return r

#
# Solució 3: immersió d'eficiència amb range
#
def coincident_3(lenters):
    return coincident_3_rec(lenters, range(len(lenters)), 0)

def coincident_3_rec(lenters, llesca, suma):
    if len(llesca) == 0:
        r = -1
    else:
        num = lenters[llesca[0]]
        if  num == suma:
            r = llesca[0]
        else:
            r = coincident_3_rec(lenters, llesca[1:], suma+num)
    return r
            
#
# Triem una de les dues solucions
#
# coindicent = coincident_1
# coincident = coincident_2
coincident = coincident_3
