# 1. feladat

osszhossz = 0
hatarok = []
with open("ut.txt", encoding="utf-8") as ut_txt:
    for sor in ut_txt:
        sor = sor.strip().split()
        sor[0] = int(sor[0])
        if len(sor) == 1:
            osszhossz = sor[0]
        else:
            hatarok.append(sor)
for hatar in hatarok:
    if not ((len(hatar[1]) >= 4) or (hatar[1] == "]") or (hatar[1] == "#") or (hatar[1] == "%")):
        hatar[1] = int(hatar[1])
# 2. feladat

print("2. feladat")
for hatar in hatarok:
    if type(hatar[1]) is not int:
        if len(hatar[1]) >= 4:
            print(hatar[1])

# 3. feladat

print("3. feladat")
kert_hossz = float(input("Adja meg a vizsgált szakasz hosszát km-ben! "))
min_seb = 90
for hatar in hatarok:
    if hatar[0] < kert_hossz * 1000:
        if type(hatar[1]) is int:
            if hatar[1] < min_seb:
                min_seb = hatar[1]
        else:
            if len(hatar[1]) >= 4 and min_seb > 50:
                min_seb = 50
print(f"Az első {kert_hossz} km-en {min_seb} km/h volt a legalacsonyabb megengedett sebesség.")

# 4. feladat

print("4. feladat")
telepuleshossz = 0
telepules = False
for szam in range(len(hatarok)):
    if (type(hatarok[szam][1]) is not int) and len(hatarok[szam][1]) >= 4:
        telepules = True
    elif telepules:
        telepuleshossz += (hatarok[szam][0] - hatarok[szam-1][0])
        if hatarok[szam][1] == "]":
            telepules = False
print(f"Az út {round((telepuleshossz/osszhossz)*100, 2)} százaléka vezet településen belül.")

# 5. feladat

print("5. feladat")
kert_telepules = input("Adja meg egy település nevét! ")
kert_telepules_tablak = 0
kert_telepules_hossz = 0
for szam in range(len(hatarok)):
    if hatarok[szam][1] == kert_telepules:
        telepules = True
    elif telepules:
        if type(hatarok[szam][1]) is int:
            kert_telepules_tablak += 1
        kert_telepules_hossz += (hatarok[szam][0] - hatarok[szam-1][0])
        if hatarok[szam][1] == "]":
            telepules = False
print(f"A sebességkorlátozó táblák száma: {kert_telepules_tablak}")
print(f"Az út hossza a településen belül {kert_telepules_hossz} méter.")

# 6. feladat

print("6. feladat")
legkozelebb = ["", 9999999]
kert_telepules_tav = 0
kert_telepules_vege_tav = 0
telepules_nev = ""
telepules_elott = False
telepules_utan = False
for hatar in hatarok:
    if hatar[1] == kert_telepules:
        kert_telepules_tav = hatar[0]
        telepules = True
    if telepules and hatar[1] == "]":
        kert_telepules_vege_tav = hatar[0]
        telepules = False
for hatar in hatarok:
    if (type(hatar[1]) is not int) and not (hatar[1] == kert_telepules) and len(hatar[1]) >= 4:
        if hatar[0] < kert_telepules_tav:
            telepules_elott = True
            telepules_nev = hatar[1]
        else:
            if hatar[0] - kert_telepules_vege_tav < legkozelebb[1]:
                legkozelebb[0] = hatar[1]
                legkozelebb[1] = hatar[0] - kert_telepules_vege_tav
    elif telepules_elott and hatar[1] == "]":
        telepules_elott = False
        if kert_telepules_tav - hatar[0] < legkozelebb[1]:
            legkozelebb[0] = telepules_nev
            legkozelebb[1] = kert_telepules_tav - hatar[0]
print(f"A legközelebbi település: {legkozelebb[0]}")
