import math

def extreu(mostra):
    ll = mostra.split()
    for i in range(1,len(ll)):
        ll[i] = float(ll[i])
    return ll[0],ll[1:]


def distancia(v1,v2):
    suma = 0.0
    for i in range(len(v1)):
        restaq = (v1[i] - v2[i])**2
        suma = suma + restaq
    return math.sqrt(suma)

def etiqueta(dades, v):
    minim = math.sqrt(len(v)) # el valor més gran possible de la distància
    minim_etiq = ''
    for m in dades:
        etiq, vector = extreu(m)
        d = distancia(vector, v)
        if d < minim:
            minim = d
            minim_etiq = etiq
    return minim_etiq

# una altra versió d'etiqueta

def etiqueta2(dades, v):
    ll = []
    for m in dades:
        etiq, vector = extreu(m)
        d = distancia(vector, v)
        t = (d,etiq)
        ll.append(t)
    minim = min(ll)
    return minim[1]

# una altra versió d'etiqueta amb comprensions de llistes

def etiqueta3(dades, v):
    ll = [extreu(m) for m in dades]
    minim = min(ll, key=lambda x: distancia(x[1],v))
    return minim[0]
