def mpbe(o, p, mp) -> float:
    """ido masodpercbe"""
    return o * 3600 + p * 60 + mp


def kezd_ido(auto) -> float:
    """auto belepesi ideje masodpercben"""
    return mpbe(*auto[1:4])


def veg_ido(auto) -> float:
    """auto kilepesi ideje masodpercben"""
    return mpbe(*auto[4:])


def szakasz_ido(auto) -> float:
    """auto altal megtett ut ideje masodpercben"""
    return veg_ido(auto) - kezd_ido(auto)


def sebesseg(auto) -> float:
    """auto sebessege km/h - ban"""
    return round(10 / szakasz_ido(auto) * 3600)


def buntetes(auto) -> int:
    """fizetendo buntetes"""
    if 104 < sebesseg(auto) <= 121:
        return 30000
    if 121 < sebesseg(auto) <= 136:
        return 45000
    if 136 < sebesseg(auto) < 151:
        return 60000
    if 151 < sebesseg(auto):
        return 200000


be = open('meresek.txt')
meresek = []
for sor in be.readlines():
    az, o1, p1, mp1, emp1, o2, p2, mp2, emp2 = sor.split()
    o1, p1, mp1, o2, p2, mp2 = int(o1), int(p1), int(mp1) + int(emp1) / 1000, int(o2), int(p2), int(mp2) + int(
        emp2) / 1000
    meresek.append([az, o1, p1, mp1, o2, p2, mp2])
be.close()

# 2. feladat
print("2. feladat\nA mérés során", len(meresek), "jármű adatait rögzítették.")

# 3. feladat
db9 = sum(1 for auto in meresek if auto[4] < 9)
print("3. feladat\n9 óra előtt", db9, "jármű haladt el a végponti mérőnél.")

# 4. feladat
ora, perc = input("4. feladat\nAdjon meg egy óra és perc értéket! ").split()
# 4.a feladat
ora, perc = int(ora), int(perc)
dbp = sum(1 for auto in meresek if auto[1] == ora and auto[2] == perc)
print("\ta. A kezdeti méréspontnál elhaladt járművek száma:", dbp)
# 4.b feladat
dbfs = len(meresek) \
       - sum(1 for auto in meresek if veg_ido(auto) < mpbe(ora, perc, 0) or kezd_ido(auto) > mpbe(ora, perc + 1, 0))
print("\tb. A forgalomsűrűség:", dbfs / 10)

# 5. feladat
leggy = max(meresek, key=lambda x: sebesseg(x))
dble = sum(1 for auto in meresek if kezd_ido(auto) < kezd_ido(leggy) and veg_ido(auto) > veg_ido(leggy))
print("5. feladat\nA legnagyobb sebességgel haladó jármű")
print("\trendszáma:", leggy[0])
print("\tsebessége:", sebesseg(leggy), "km/h")
print("\táltal lehagyott járművek száma:", dble)

# 6. feladat
gyorsdb = sum(1 for auto in meresek if sebesseg(auto) > 90)
print("6. feladat\nA járművek {:.2f}%-a volt gyorshajtó.".format(gyorsdb * 100 / len(meresek)))

# 7. feladat
ki = open('buntetes.txt', 'w')
for auto in meresek:
    if sebesseg(auto) > 104:
        print("{}\t{} km/h\t{} Ft".format(auto[0], sebesseg(auto), buntetes(auto)), file=ki)
ki.close()
print("7. feladat\nA fájl elkészült.")
