def diferencies(llista,lim_inf,lim_sup):
    ldif = []
    for i in range(0, len(llista), 2):
        if lim_inf <= llista[i] <= lim_sup and lim_inf <= llista[i+1] <=lim_sup:
            ldif.append(llista[i+1]-llista[i])
        else:
            ldif.append(0)
    return ldif

def classifica_difs(llista,lim_inf,lim_sup):
    ldif = diferencies(llista,lim_inf,lim_sup)
    pos = 0
    neg = 0
    for dif in ldif:
        if dif>=0:
            pos = pos + 1
        else:
            neg = neg + 1
    return pos, neg

# Una altra versió amb comprensions de llistes

def diferencies2(ln, linf, lsup):
    return [diferencia(linf, lsup, ln[i], ln[i+1]) for i in range(0, len(ln), 2)]

def diferencia(linf, lsup, a, b):
    if linf <= a <= lsup and linf <= b <= lsup:
        r = b - a
    else:
        r = 0
    return r


def classifica_difs2(lmes,linf,lsup):
    ld = diferencies(lmes, linf, lsup)
    pz = len([d for d in ld if d >= 0])
    n = len(ld) - pz
    return pz, n
