"""
2021. május idegennyelvű: Bányató
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("melyseg.txt")

sdb=int(betxt.readline().strip())
odb=int(betxt.readline().strip())

"""
A könnyebb feldolgozás kedvéért a sordbxoszlopdb-s táblázatot sorfolytonos listában tároljuk.
A transzformációk:
sor=index//odb +1, oszlop=index%odb +1
index=(sor-1)*odb+(oszlop-1)
"""

melysegek=[]
for sor in betxt:
    darsor=sor.strip().split()
    adatsor=list(map(int,darsor))
    melysegek+=adatsor
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

akts=int(input(f'A mérés sorának azonosítója (max. {sdb}) = ').strip())
akto=int(input(f'A mérés oszlopának azonosítója (max. {odb}) = ').strip())
print(f'A mért mélység az adott helyen {melysegek[(akts-1)*odb+akto-1]} dm.')

         

print("\n3. feladat\n")

to=list(filter(lambda m: m>0 ,melysegek))
print(f'A tó felszíne {len(to)} m^2, átlagos mélysége: {sum(to)/(10*len(to)):.2f} m.')



print("\n4. feladat\n")

maxm=max(to)
maxik=list(filter(lambda i: melysegek[i]==maxm ,range(len(melysegek))))
mhelyek=list(map(lambda i: f'({i//odb+1}, {i%odb+1})' ,maxik))
print(f'A tó legnagyobb mélysége: {maxm} dm.')
print("A legmélyebb helyek sor-oszlop koordinátái:")
print("\t".join(mhelyek))



print("\n5. feladat\n")

partvonal=0
for i,m in enumerate(melysegek):
    if m>0:
        szomszedok=[i-1,i+1,i-odb,i+odb] # tudjuk, hogy nincs a széleken
        partszomszedok=list(filter(lambda sz: melysegek[sz]==0 ,szomszedok))
        partvonal+=len(partszomszedok)

print(f'A tó partvonala {partvonal} m hosszú.')



print("\n6. feladat\n")

vo=int(input(f'A vizsgált szelvény oszlopának azonosítója (max. {odb}) = ').strip())

kitxt = open("diagram.txt","w")

for i in range(vo-1,len(melysegek),odb):
    kitxt.write(f'{i//odb+1:02}{round(melysegek[i]/10)*"*"}\n')


kitxt.close()
print("\nA kiíratás és a szövegfájl lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
