adatok = []

with open("ut.txt", "r", encoding="utf-8") as forrasfajl :
    for i, sor in enumerate(forrasfajl) :
        if i == 0 :
            ut_hossza = int(sor)
        if i >= 1 :
            sor = sor.strip().split(" ")
            sor[0] = int(sor[0])
            adatok.append(sor)


# 2. feladat

print("2. feladat")
print("A települések neve:")

for adat in adatok :
    if 4 <= len(adat[1]) <= 30 :
        print(adat[1])


# 3. feladat

print("\n3. feladat")

megadott_szakasz = int(input("Adja meg a vizsgált szakasz hosszáz km-ben! "))
legalacsonyabb_sebesseghatar = int(adatok[0][1])

for adat in adatok :
    if adat[0] <= megadott_szakasz * 1000 :
        if 3 >= len(adat[1]) >= 2 and int(adat[1]) < legalacsonyabb_sebesseghatar :
            legalacsonyabb_sebesseghatar = int(adat[1])
        if 4 <= len(adat[1]) <= 30 :
            sebesseghatar = 50
            if sebesseghatar < legalacsonyabb_sebesseghatar :
                legalacsonyabb_sebesseghatar = sebesseghatar

print(f'Az első {megadott_szakasz} km-en {legalacsonyabb_sebesseghatar} km/h volt a legalacsonyabb megengedett sebesség.')


# 4. feladat

print("\n4.feladat")

varosi_ut = 0

for adat in adatok :
    if 4 <= len(adat[1]) <= 30 :
        ut_kezdete = adat[0]
    if adat[1] == "]" :
        ut_vege = adat[0]
        ut_szakasz = ut_vege - ut_kezdete
        varosi_ut += ut_szakasz
        ut_kezdete = 0
        ut_vege = 0

ut_szazalek = (varosi_ut / ut_hossza) * 100

print(f'Az út {ut_szazalek:.2f} százaléka vezet településen belül.')


# 5. feladat

print("\n5. feladat")

megadott_telepules = input("Adja meg egy település nevét! ")

sebessegtabla_szama = 0

for i, adat in enumerate(adatok) :
    if adat[1] == megadott_telepules :
        varos_eleje = adat[0]
        index1 = i
        for j, adat2 in enumerate(adatok) :
            if j >= i and adat2[1] == "]" :
                varos_vege = adat2[0]
                index2 = j
                break

telepules_ut = varos_vege - varos_eleje

for x, adat in enumerate(adatok) :
    if index1 < x < index2 and len(adat[1]) == 2 :
        sebessegtabla_szama += 1

print(f'A sebességkorlátozó táblák száma: {sebessegtabla_szama}')
print(f'Az út hossza a településen belül {telepules_ut} méter.')


# 6. feladat

print("\n6. feladat")

index_lista = []

for i, adat in enumerate(adatok) :
    if 4 <= len(adat[1]) <= 30 :
        index_lista.append(i)

for y, ertek in enumerate(index_lista) :
    if ertek == index1 :
        elotte_index =y-1
        utana_index = y+1

elotte = index_lista[elotte_index]
utana = index_lista[utana_index]

for v, adat in enumerate(adatok) :
    if v == elotte :
        elotte_varos = adat[1]
        elotte_kezd = adat[0]
    if v > elotte and adat[1] == "]" :
        elotte_veg = adat[0]
        break

for w, adat in enumerate(adatok) :
    if w == utana :
        utana_varos = adat[1]
        utana_kezd = adat[0]
    if w > utana and adat[1] == "]" :
        utana_veg = adat[0]
        break

elotte_ut = varos_eleje - elotte_veg
utana_ut = utana_kezd - varos_vege

if elotte_ut > utana_ut :
    print(f'A legközelebbi település: {utana_varos}')
else :
    print(f'A legközelebbi település: {elotte_varos}')








