"""
2013. október: Közúti ellenőrzés
@author Klemand66
"""

print("\n1. feladat\n")

jogdb=12345

jarmuvek=[]
betxt = open("jarmu.txt")

for sor in betxt:
    darsor=sor.strip().split()
    adatsor=[int(darsor[0]),int(darsor[1]),int(darsor[2]),darsor[3]]
           # 0: óra  1: perc  2: mp  3: rendszám
    jarmuvek.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 ellenőrzést végzők legalább {jarmuvek[-1][0]-jarmuvek[0][0]+1} óra hosszat dolgoztak.')


print("\n3. feladat\n")

print("Műszaki ellenőrzések:")
aktora=None
for jarmu in jarmuvek:
    if jarmu[0]!=aktora:
        aktora=jarmu[0]
        print(f'{aktora:2} óra: {jarmu[3]}')



print("\n4. feladat\n")

print("Kategóriánkénti statisztika az ellenőrzőpont előtti áthaladásról:")

kbetuk=["B","K","M"]
tipusok=["autóbusz","kamion","motor"]
szgkdb=len(jarmuvek)

for i in range(len(kbetuk)):
    aktjarmuvek=list(filter(lambda jarmu: jarmu[3][0]==kbetuk[i] ,jarmuvek))
    aktdb=len(aktjarmuvek)
    szgkdb-=aktdb                     
    print(f'{tipusok[i]}: {aktdb}')
    
print(f'személygépkocsi: {szgkdb}')

    

print("\n5. feladat\n")

idok=[]
for jarmu in jarmuvek:
    idok.append(jarmu[0]*3600+jarmu[1]*60+jarmu[2])

print("A leghosszabb forgalommentes időszak az első és az utolsó jármű elhaladása között: ")

maxindex=max(range(1,len(idok)),key=lambda i: idok[i]-idok[i-1])

indexek=[maxindex-1,maxindex]
formidok=[]
for i in indexek:
    formidok.append(f'{jarmuvek[i][0]}:{jarmuvek[i][1]}:{jarmuvek[i][2]}')
                
print(f'{formidok[0]} - {formidok[1]}')



print("\n6. feladat\n")

def reszlet(rsz):
    hasznos=""
    for i in joindexek:
        hasznos+=rsz[i]
    return hasznos
    
hrsz=input("Kérem a rendszámot (7 karakter), a hiányzó karaktereket *-gal jelölve: ")
joindexek=list(filter(lambda i: hrsz[i]!="*" ,range(len(hrsz))))
joreszlet=reszlet(hrsz)

illjarmuvek=list(filter(lambda jarmu: reszlet(jarmu[3])==joreszlet,jarmuvek))

print("Az illeszkedő rendszámok:")

for jarmu in illjarmuvek:
    print(jarmu[3])    



print("\n7. feladat\n")

def konvertalo(t):
    mp=t%60
    t=t//60
    perc=t%60
    ora=t//60
    return f'{ora:02} {perc:02} {mp:02}'  # bevezető nullák


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

vizsgkezd=-400
for i,jarmu in enumerate(jarmuvek):
    if idok[i]-vizsgkezd>=300: # az első járműnél biztosan teljesül
        kitxt.write(f'{konvertalo(idok[i])} {jarmu[3]}\n')            
        vizsgkezd=idok[i]
        
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!")
