# Exercício Prático 2 - Etapa de Atribuição do K-Means
import math

# Centroides atuais: C0 e C1
centroides = {
    0: (10.0, 20.0),  # Centroide do Grupo 0
    1: (50.0, 60.0)   # Centroide do Grupo 1
}

# Novos clientes: (Renda em R$ mil, Gasto em R$ mil)
clientes = [
    (12.0, 22.0),
    (48.0, 58.0),
    (15.0, 18.0),
    (52.0, 65.0)
]

def encontrar_centroide_proximo(ponto, centroides_dict):
    menor_distancia = float('inf')
    grupo_designado = None
    
    for grupo, coord_centroide in centroides_dict.items():
        # Distância Euclidiana 2D
        dist = math.sqrt((ponto[0] - coord_centroide[0])**2 + (ponto[1] - coord_centroide[1])**2)
        if dist < menor_distancia:
            menor_distancia = dist
            grupo_designado = grupo
            
    return grupo_designado

print("=== ATRIBUIÇÃO AUTOMÁTICA AOS CLUSTERS ===")
for i, cliente in enumerate(clientes, start=1):
    grupo = encontrar_centroide_proximo(cliente, centroides)
    print(f"Cliente {i} {cliente} -> Alocado no Grupo: {grupo}")