"""
2009. október: Útépítés
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("forgalom.txt")
jdb = int(betxt.readline().strip())

jarmuvek=[]
for i in range(jdb):
    sor=betxt.readline().strip()  
    darsor=sor.split()            
    jarmu=[int(darsor[0]),int(darsor[1]),int(darsor[2])]
    # jarmu[    0: óra,      1: perc,       2: mp,           
    erkezes=3600*jarmu[0]+60*jarmu[1]+jarmu[2]
    jarmu.append(erkezes)  # 3: érkezés,
    jarmu+=[int(darsor[3]), darsor[4]]
       # 4: áthaladási idő,  5: honnan]
    jarmuvek.append(jarmu)
    
betxt.close()
print("A beolvasás és a fájl lezárása sikeresen befejeződött.")


print("\n2. feladat\n")

n=int(input(f'Kérem a jármű sorszámát (n<={jdb}): '))

if jarmuvek[n-1][5]=="A":
    irany="Felső"
else:
    irany="Alsó"
    
print(f'A(z) {n}. belépő jármű {irany} felé haladt.')


print("\n3. feladat\n")

felsobe=list(filter(lambda i:jarmuvek[i][5]=="A" , range(jdb)))

if len(felsobe)>1:
    u=felsobe[-1]
    ue=felsobe[-2]
    idokul=jarmuvek[u][3]-jarmuvek[ue][3]
    
    print(f'A Felső felé haladó utolsó két jármű érkezése között {idokul} mp különbség volt.')
else:
    print("Nem haladt két jármű Felső város irányába.")
    

print("\n4. feladat\n")

dba,dbf=[],[]
for i in range(24):
    dba.append(0)
    dbf.append(0)
    
for jarmu in jarmuvek:
    if jarmu[5]=="A":
        dba[jarmu[0]]+=1
    else:
        dbf[jarmu[0]]+=1

print("Az óránként Alsó, ill. Felső város felől érkező autók száma: ")

for i in range(24):
    if dba[i]+dbf[i]!=0:
        print(f'{i:2} {dba[i]:3} {dbf[i]:3} ')
    

print("\n5. feladat\n")

rjarmuvek=sorted(jarmuvek,key=lambda jarmu: jarmu[4])

print("A 10 leggyorsabb jármű: ")

for i,jarmu in enumerate(rjarmuvek):
    if jarmu[5]=="A":
        honnan="Alsó"
    else:
        honnan="Felső"    
    print(f'{jarmu[0]:2} {jarmu[1]:2} {jarmu[2]:2} {honnan:5} {1000/jarmu[4]:.1f} m/s')
    if i==9:
        break
    

print("\n6. feladat\n")

def konvertalo(t):
    mp=t%60
    t=t//60
    perc=t%60
    ora=t//60
    return f'{ora} {perc} {mp}'

felsobe=list(filter(lambda i:jarmuvek[i][5]=="F" , range(jdb)))

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

kilepes=-1 # irreálisan kicsi kezdőérték

for ind in felsobe:
    idki=jarmuvek[ind][3] + jarmuvek[ind][4] # forgalom nélküli ideális kilépés
    if idki > kilepes:
        kilepes=idki
    kitxt.write(f'{konvertalo(kilepes)}\n')

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