"""
2010. május: Helyjegy
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("eladott.txt")

darsor = betxt.readline().strip().split()
adatsor=list(map(int,darsor))
jdb,hossz,ear=adatsor[0],adatsor[1],adatsor[2]
# eladott jegyek száma, úthossz, egységár

helyek,felszok,leszok=[],[],[]
# ülőhelyek, felszállások (km), leszállások (km)

for i in range(jdb):
    darsor=betxt.readline().strip().split()  
    adatsor=list(map(int,darsor))
    helyek.append(adatsor[0])
    felszok.append(adatsor[1])
    leszok.append(adatsor[2])

betxt.close()
print("A beolvasás és a fájl lezárása sikeresen befejeződött.")


print("\n2. feladat\n")

print(f'Az utolsó jegyvásárló ülésének száma: \
{helyek[-1]}, a beutazott távolság: {leszok[-1]-felszok[-1]} km.')


print("\n3. feladat\n")

print(f'A teljes utat végigutazók listája: ',end="")

vegig=list(filter(lambda i: felszok[i]==0 and leszok[i]==hossz,range(jdb)))
# Kiszűrjük a végigutazók indexeit.
vegigstrlista=list(map(lambda i:str(i+1),vegig))
# A sorszámokat (index+1) sztringgé alakítjuk.
vegigstr=" ".join(vegigstrlista)
# A sztringlista elemeit szóközzel "ragasztva" egy sztringgé fűzzük össze.

print(vegigstr)


print("\n4. feladat\n")

def jegyar(fel,le,ear):
    tav=(le-fel)//10
    if (le-fel)%10>0:
        tav+=1
    ar=tav*ear  
    m=ar%5
    ar=ar-m
    if m>2:
        ar+=5
    return ar

jegyarak=list(map(lambda i: jegyar(felszok[i], leszok[i],ear),range(jdb)))

print(f'A társaság bevétele a jegyárakból: {sum(jegyarak)} Ft.')


print("\n5. feladat\n")

kmekfel, kmekle=[], []

for km in range(hossz+1):
    kmekfel.append(0)
    kmekle.append(0)

for i in range(jdb):
    kmekfel[felszok[i]]+=1
    kmekle[leszok[i]]+=1

megallok=list(filter(lambda i: kmekfel[i]+kmekle[i]>0,range(hossz+1)))

print(f'A végállomás előtti utolsó megálló: {megallok[-2]} km-nél volt.')
print(f'A megállóban {kmekfel[megallok[-2]]} felszálló és {kmekle[megallok[-2]]} leszálló volt.')


print("\n6. feladat\n")

print(f'A busz a kiinduló állomás és a célállomás között {len(megallok)-2} helyen állt meg.')


print("\n7. feladat\n")

aktkm=int(input(f'Kérem az út egy tetszőleges km-ét (km<={hossz}): '))

utasok=list(filter(lambda i: felszok[i]<=aktkm and leszok[i]>aktkm,range(jdb)))
# Az i index az i+1. utast jelenti.

ulesek=[]
for i in range(48): # az i index az i+1. ülést jelenti
    ulesek.append(None)

for i in utasok:
    ulesek[helyek[i]-1]=i

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

for i in range(48):
    kitxt.write(f'{i+1}. ülés: ')
    if ulesek[i]==None:
        kitxt.write(f'üres\n')
    else:
        kitxt.write(f'{ulesek[i]+1}. utas\n')
        
kitxt.close()
print("\nA kiíratás és a szövegfájl lezárása sikeresen befejeződött.\n")

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