import math


def energia(ut):
    e = 2  # indulás
    e += len(ut)  # minden lépés egy egység
    for s in range(len(ut) - 1):
        if ut[s] != ut[s + 1]:
            e += 2  # irányváltáskét egység
    return e


def atalakit(ut_regi):
    ut = ut_regi + " "  # különben az utolsőt nem írja ki
    uj = ""
    szamlalo = 1
    for i in range(len(ut) - 1):
        if ut[i] == ut[i + 1]:
            szamlalo += 1
        else:
            if szamlalo == 1:
                uj += ut[i]
            else:
                uj += str(szamlalo)
                uj += ut[i]
                szamlalo = 1
    return uj


def atalakit2(ut_regi):
    uj = ""
    elozo = ""
    szamlalo = 1
    # ENNNDKENDND
    for irany in ut_regi + " ":
        if irany == elozo:
            szamlalo += 1
        else:
            if szamlalo == 1:
                uj += elozo
            else:
                uj += str(szamlalo)
                uj += elozo

                szamlalo = 1
        elozo = irany
    return uj


def irany(c):
    if c in ('E', 'D', 'K', 'N'):
        return True
    else:
        return False


def visszaalakit(ut):
    szam = ''
    uj_ut = ''
    for i in range(len(ut)):
        if not irany(ut[i]):
            szam += ut[i]  # ha nem irány
        elif irany(ut[i]) and szam != '':  # ha irány
            uj_ut += ut[i] * int(szam)
            szam = ''
        else:
            uj_ut += ut[i]  # ha irány
    return uj_ut


f = open("program.txt")
db = int(f.readline())
utak = [x.strip() for x in f.readlines()]
f.close()

sorszam = int(input("2/a feladat: adja meg az utasítás sorszámát (1-{}): ".format(len(utak))))
print("Az utasítás", ["nem egyszerűsíthető.", "egyszerűsíthető."][('ED' or 'DE' or 'KN' or 'NK') in utak[sorszam - 1]])

print("2/b feladat")
x, y, max_tavolsag, max_lepes, j = 0, 0, 0, 1, 0
for i in utak[sorszam - 1]:
    if i == 'E':
        y += 1
    elif i == 'D':
        y += -1
    elif i == 'K':
        x += 1
    else:
        x += -1
    if max_tavolsag < math.sqrt(x ** 2 + y ** 2):
        max_tavolsag = math.sqrt(x ** 2 + y ** 2)
        max_lepes = j
    j += 1
print("2/b feladat\nA legnagyobb távolság: {:.3f}, a {}. lépésben.".format(max_tavolsag, max_lepes))
print("3. feladat:")
print("Azok az utak, amelyekhez elegendő a kis akku:")
for index, ut in enumerate(utak):
    if energia(ut) <= 100:
        print("sorszám", index + 1, "energia:", energia(ut))

print("4. feladat: fájlbaírása a rövidített leírásoknak")
ki = open("ujprogram.txt", "w")
for ut in utak:
    print(atalakit(ut), file=ki)
ki.close()
ki = open("ujprogram2.txt", "w")
for ut in utak:
    print(atalakit2(ut), file=ki)
ki.close()

rovidut = input("5. feladat:\nAdjon meg egy utat: ").upper()

print("A visszaállított utasítás:", visszaalakit(rovidut))
