uzenetek = []
memoria = 10
f = open("sms.txt")
db = f.readline().split()
i = 0
for sor in f.readlines():
    if i % 2 == 0:
        ora, perc, szam = sor.strip().split()
        uzenetek.append([int(ora), int(perc), szam])
    else:
        uzenetek[-1].append(sor.strip())
    i += 1
# print(uzenetek)
print("2. feladat\nA memóriában tárolt utolsó üzenet: {}".format(uzenetek[min(memoria, len(uzenetek)) - 1][3]))
print("3. feladat")
leghosszabb = [uzenet for uzenet in uzenetek if len(uzenet[3]) == max(len(uzenet[3]) for uzenet in uzenetek)]
print("A leghosszabb üzenet:", *leghosszabb[0])
legrovidebb = [uzenet for uzenet in uzenetek if len(uzenet[3]) == min(len(uzenet[3]) for uzenet in uzenetek)]
print("A legrövidebb üzenet:", *legrovidebb[0])
print("4. feladat")
hosszak = ['1-20', '21-40', '41-60', '61-80', '81-100']
hossz_stat = [0] * 5  # [0, 0, 0, 0, 0]
for uzenet in uzenetek:
    hossz_stat[(len(uzenet[3]) - 1) // 20] += 1
for index, darab in enumerate(hossz_stat):
    print(hosszak[index], darab)
print("5. feladat")
orak = [0] * 24
for uzenet in uzenetek:
    orak[uzenet[0]] += 1
# print(orak)
lekerendo = 0
for db in orak:
    if db > memoria:
        lekerendo += db - memoria
print("A lekérendő üzenetek száma:", lekerendo)
print("6. feladat")
baratno_hivasok = [x[0] * 60 + x[1] for x in uzenetek if x[2] == "123456789"]
# print(baratno_hivasok)
if len(baratno_hivasok) > 1:
    idotartamok = []
    for i in range(len(baratno_hivasok) - 1):
        idotartamok.append(baratno_hivasok[i + 1] - baratno_hivasok[i])
    print("Két hívás közötti legtöbb idő:", max(idotartamok))
else:
    print("Nincs elég adat.")
print("7. feladat:\nAdja meg az üzenet adatait!")
ora = int(input("óra: "))
perc = int(input("perc: "))
telszam = input("telefonszám: ")
szoveg = input("szöveg: ")
uzenetek.append([ora, perc, telszam, szoveg])
print("8. feladat: fájlbaírás")
ki = open("smski2.txt", "w")
telefonszamok = set(x[2] for x in uzenetek)
telefonszamok = sorted(telefonszamok, key=lambda y: int(y))
for szam in telefonszamok:
    adatok = [(x[0], x[1], x[3]) for x in uzenetek if x[2] == szam]
    print(szam, file=ki)
    for u in adatok:
        print("{0}:{1} {2}".format(u[0], u[1], u[2]), file=ki)
