using System.Collections.Generic;

public class AntenaCom
{
    public int Id { get; set; }
    public RedCom Red;
    public float X { get; set; }
    public float Y { get; set; }
    public HashSet<AntenaCom> Conexiones { get; set; }

    public bool MensajeTrasnmitido { get; set; }

    public bool Visitada { get; set; }
    public bool AntenaComGrande { get; set; }
    public int Grupo = -1;

    private readonly Dictionary<int, AntenaCom> _tablaDeRuteo = new Dictionary<int, AntenaCom>();
    private readonly Dictionary<int, int> _tablaDeDistancias = new Dictionary<int, int>();

    public AntenaCom(int id, RedCom redCom)
    {
        Id = id;
        Red = redCom;
        Conexiones = new HashSet<AntenaCom>();
    }

    public int GetDistancia(AntenaCom destino)
    {
        if (!_tablaDeRuteo.ContainsKey(destino.Id))
        {
            Red.CalcularRutas(destino);
        }
        return _tablaDeDistancias[destino.Id];
    }

    public AntenaCom GetRuta(AntenaCom destino)
    {
        if (!_tablaDeRuteo.ContainsKey(destino.Id))
        {
            Red.CalcularRutas(destino);
        }
        return _tablaDeRuteo[destino.Id];
    }

    public void SetDistancia(AntenaCom destino, int distancia)
    {
        _tablaDeDistancias[destino.Id] = distancia;
    }

    public void SetRuta(AntenaCom destino, AntenaCom ruta)
    {
        _tablaDeRuteo[destino.Id] = ruta;
    }
}