from sys import exit

def carica_piramide(filename: str):
    try:
        fio = open(filename, "r")
    except FileNotFoundError:
        exit(f"Attenzione! {filename} non trovato")

    mappa = []

    for i in fio:
        righa = [int(c) for c in i.strip().split()]
        mappa.append(righa)

    fio.close()

    return mappa


def lista_adiacenti(mappa: list, x: int, y: int):
    items = []

    for a in range(max(0, x - 1), min(x + 2, len(mappa))):
        for b in range(max(0, y - 1), min(y + 2, len(mappa[x]))):
            if a == x and b == y:
                continue

            items.append(mappa[a][b])

    return items


def cerca_piramidi(mappa: list):
    somma_altezze = 0
    numero_piramidi = 0

    for x in range(len(mappa)):
        for y in range(len(mappa[x])):
            altezza_massima = max(lista_adiacenti(mappa, x, y))

            if mappa[x][y] > altezza_massima:
                print(mappa[x][y], x, y)
                somma_altezze += mappa[x][y]
                numero_piramidi += 1


    return  somma_altezze / numero_piramidi

def main():
    mappa = carica_piramide("mappa.txt")
    media = cerca_piramidi(mappa)
    print(f"Altezza media: {media} m")


main()