iranya = {'A': 'Alsó', 'F': 'Felső'}


def ido_mp(ora, perc, masodperc):
    return ora * 3600 + perc * 60 + masodperc


def idopont(mperc):
    ora = mperc // 3600
    perc = (mperc - 3600 * ora) // 60
    mp = mperc % 60
    return ora, perc, mp


jarmuvek = []
try:
    f = open("forgalom.txt")
    db = f.readline()
    for x in f.readlines():
        ora, perc, masodperc, ido, irany = x.split()
        jarmuvek.append([int(ora), int(perc), int(masodperc), int(ido), irany])
except FileNotFoundError:
    print("Hiba")
    exit(-1)

# 2. feladat
n = int((input("Adja meg n értékét: ")))
print("A(z) {}. auto {} város felé haladt.".format(n, "Alsó" if jarmuvek[n - 1][-1] == 'A' else "Felső"))

# 3. feladat
print("3. feladat")
felso_fele = [x for x in jarmuvek if x[-1] == 'A']
utolso = felso_fele[-1]
elotte = felso_fele[-2]

print("A két utolsó jármű kötött", ido_mp(*utolso[0:3]) - ido_mp(*elotte[0:3]), "másodperc volt.")

# 4. feladat
print("4. feladat")
statisztika = [[0 for i in range(2)] for ora in range(24)]  # 24 db [0, 0] létrehozása
for ora, perc, mp, ido, irany in jarmuvek:
    if irany == 'A':
        statisztika[ora][0] += 1
    else:
        statisztika[ora][1] += 1
for ora, adat in enumerate(statisztika):
    if adat != [0, 0]:
        print(ora, *adat)

# 5. feladat
print("5. feladat")
jarmuvek2 = jarmuvek.copy()
jarmuvek2.sort(key=lambda a: a[3])
for i in range(10):
    print(*jarmuvek2[i][:3], iranya.get(jarmuvek2[i][4]), round(1000 / jarmuvek2[i][3], 1), "m/s")
# 2. értelmezés
print("5. feladat (különböző sebességek)")
seb = []
for x in jarmuvek2:
    if len(seb) == 10:
        break
    sebesseg = 1000 / x[3]

    if sebesseg not in seb:
        if x[-1] == 'F':
            print("{} {} {} Felső {:.1f} m/s".format(x[0], x[1], x[2], sebesseg))
        else:
            print("{} {} {} Alsó {:.1f} m/s".format(x[0], x[1], x[2], sebesseg))
        seb.append(sebesseg)

print("5. feladat (különböző sebesség) - 2. megoldás")
jarmuvek2 = jarmuvek.copy()
jarmuvek2.sort(key=lambda a: a[3])
k = 0
for i in range(len(jarmuvek2)):
    if jarmuvek2[i][3] != jarmuvek2[i + 1][3]:
        print(*jarmuvek2[i][:3], iranya.get(jarmuvek2[i][4]), round(1000 / jarmuvek2[i][3], 1), "m/s")
        k += 1
    if k == 10:
        break

#6. feladat
print("6. feladat")
idok = [ido_mp(*x[:3]) + x[3] for x in jarmuvek if x[-1] == "F"]
# print(idok)
ki = open("also.txt", "w")
elozo_ido = idok[0]
for i in range(len(idok)):
    if idok[i] > elozo_ido:
        print(*idopont(idok[i]), file=ki)
        elozo_ido = idok[i]
    else:
        print(*idopont(elozo_ido), file=ki)

ki.close()
