"""
2023. május digitkult: Ütemezés
@author Klemand67
"""

print("\n1. feladat\n")

betxt = open("taborok.txt")

taborok=[]
for sor in betxt:
    d=sor.strip().split("\t")
    adatsor=[int(d[0]),int(d[1]),int(d[2]),int(d[3]),list(d[4]),d[5] ]
         #  0: ehó  1: enap  2: uhó 3: unap 4: érdeklődők listája 5: téma
    taborok.append(adatsor)
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'Az adatsorok száma: {len(taborok)}')
print(f'Az először rögzített tábor témája: {taborok[0][5]}')
print(f'Az utoljára rögzített tábor témája: {taborok[-1][5]}')



print("\n3. feladat\n")

zenei=list(filter(lambda tabor: tabor[5]=="zenei", taborok))

if len(zenei)>0:
    for z in zenei:
        print(f'Zenei tábor kezdődik {z[0]}. hó {z[1]}. napján.')
else:
    print("Nem volt zenei tábor.")
    


print("\n4. feladat\n")

print("Legnépszerűbbek:")

nepszerusegek=list(map(lambda tabor: len(tabor[4]), taborok))
maxnsz=max(nepszerusegek)
legnepszerubbek=list(filter(lambda tabor: len(tabor[4])==maxnsz, taborok))

for tabor in legnepszerubbek:
    print(f'{tabor[0]} {tabor[1]} {tabor[5]}')

    

print("\n5. feladat\n")

def sorszam(ho,nap):
    if ho==6:
        return nap-15
    elif ho==7:
        return nap+15
    else:
        return nap+46

print(f'Az elkészített függvény:\n\n\
def sorszam(ho,nap):\n\
    if ho==6:\n\
        return nap-15\n\
    elif ho==7:\n\
        return nap+15\n\
    else:\n\
        return nap+46')



print("\n6. feladat\n")

aktho=int(input("hó: "))
aktnap=int(input("nap: "))

tartanak=list(filter(lambda t: \
sorszam(t[0],t[1])<=sorszam(aktho,aktnap)<=sorszam(t[2],t[3]), taborok))

print(f'\nEkkor éppen {len(tartanak)} tábor tart:')

# szorgalmi, felsoroljuk, melyek ezek
for tabor in tartanak:
    print(tabor[5], end=" ")
print()



print("\n7. feladat\n")

akttan=input("Adja meg egy tanuló betűjelét: ")

akttaborok=list(filter(lambda tabor: akttan in tabor[4], taborok))
akttaborok.sort(key=lambda tabor: sorszam(tabor[0],tabor[1]))

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

for t in akttaborok:
    kitxt.write(f'{t[0]}.{t[1]}-{t[2]}.{t[3]}. {t[5]}\n')

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

# Az ütközésekhez felhasználjuk a kezdő dátum szerinti rendezést
utkozesek=list(filter(lambda i: \
sorszam(akttaborok[i-1][2],akttaborok[i-1][3])>=sorszam(akttaborok[i][0],akttaborok[i][1]), \
range(1,len(akttaborok))))

#szorgalmi: megadjuk az ütközések számát is
if len(utkozesek)>0:
    print(f'Nem mehet el mindegyik táborba, {len(utkozesek)} ütközés van.')
else:
    print("Elmehet mindegyik táborba.")


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