"""
2023. május idegennyelvű: Szállítószalag
@author Klemand67
"""


print("\n1. feladat\n")

betxt = open("szallit.txt")

sor=betxt.readline()
darsor=sor.strip().split()
hossz=int(darsor[0])
eido=int(darsor[1])

rekeszek=[]
for sor in betxt:
    darsor=sor.strip().split()
    adatsor=list(map(int,darsor))
    # 0: idő 1: honnan 2: hova 3: tömeg
    rekeszek.append(adatsor)
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

ssz=int(input("Adja meg, melyik adatsorra kíváncsi! "))

print(f'Honnan: {rekeszek[ssz-1][1]} Hova: {rekeszek[ssz-1][2]}')



print("\n3. feladat\n")

def tav(hossz,honnan,hova):
    if hova>honnan:
        return hova-honnan
    else:
        return hossz-honnan+hova

print(f'Az elkészített függvény:\n\n\
def tav(hossz,honnan,hova):\n\
    if hova>honnan:\n\
        return hova-honnan\n\
    else:\n\
        return hossz-honnan+hova')



print("\n4. feladat\n")

tavok=list(map(lambda rekesz: tav(hossz,rekesz[1],rekesz[2]), rekeszek))
maxtav=max(tavok)

print(f'A legnagyobb távolság: {maxtav}')

maxindexek=list(filter(lambda i: tavok[i]==maxtav, range(len(tavok))))
maxsorszamok=list(map(lambda i: str(i+1), maxindexek))

print(f'A maximális távolságú szállítások sorszáma: {" ".join(maxsorszamok)}')



print("\n5. feladat\n")

elhaladok=list(filter(lambda rekesz: rekesz[1]>rekesz[2]>0, rekeszek))
ehtomegek=list(map(lambda rekesz: rekesz[3], elhaladok))
ossztomeg=sum(ehtomegek)

print(f'A kezdőpont előtt elhaladó rekeszek össztömege: {ossztomeg}')



print("\n6. feladat\n")

aktido=int(input("Adja meg a kívánt időpontot! "))

aktindexek=list(filter(lambda i: \
rekeszek[i][0]<=aktido<rekeszek[i][0]+tavok[i]*eido, range(len(rekeszek))))
# \: hosszú kódsor törése
aktsorszamok=list(map(lambda i: str(i+1), aktindexek))

if len(aktsorszamok)>0:
    print(f'A szállított rekeszek halmaza: {" ".join(aktsorszamok)}')
else:
    print(f'A szállított rekeszek halmaza: üres')



print("\n7. feladat\n")

helyek=[]
tomegek=[]

for rekesz in rekeszek:
    if rekesz[1] in helyek:
        helyindex=helyek.index(rekesz[1])
        tomegek[helyindex]+=rekesz[3]
    else:
        helyek.append(rekesz[1])
        tomegek.append(rekesz[3])


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

for i,hely in enumerate(helyek):
    kitxt.write(f'{hely} {tomegek[i]}\n')

kitxt.close()
print("A 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!")
