"""
2008. október: Robot
@author Klemand66
"""

from math import *

print("\n1. feladat\n")

betxt = open("program.txt")
n = int(betxt.readline().strip())

programok=[]

for i in range(n):
    sor=betxt.readline().strip() 
    programok.append(sor)

betxt.close()
print("A beolvasás és a fájl lezárása sikeresen befejeződött.\n")


print("\n2. feladat\n")

k=int(input(f'Kérem egy program sorszámát (1 - {n}-ig): '))

aktpr = programok[k-1]

print("\na. feladat\nA program ",end="")

if "ED" in aktpr or "DE" in aktpr or "KN" in aktpr or "NK" in aktpr:
    print("egyszerűsíthető.")
else:
    print("nem egyszerűsíthető.")

print("\nb. feladat")
EDdb=abs(aktpr.count("E")-aktpr.count("D"))
KNdb=abs(aktpr.count("K")-aktpr.count("N"))

print(f'{EDdb} lépést kell tenni az ED, {KNdb} lépést a KN tengely mentén.')

print("\nc. feladat\n")

def tav(pr): # túl hosszú lett volna egy kifejezésként a lambda függvénybe írni
    x=pr.count("E")-pr.count("D")
    y=pr.count("K")-pr.count("N")
    return sqrt(x**2+y**2) # ehhez kellett a math modul

tavok=list(map(lambda i: tav(aktpr[:i+1]),range(len(aktpr))))

maxtav=max(tavok)
lepes=tavok.index(maxtav)+1

print(f'A(z) {lepes}. lépés után volt legtávolabb: {maxtav:.3f} cm távolságra.\n')


print("\n3. feladat\n")

print("A kis akkut igénylő programok és energiaszükségletük:")

for i,pr in enumerate(programok):
    energia=2+len(pr)
    for j in range(1,len(pr)):
        if pr[j]!=pr[j-1]:
            energia+=2
    if energia<=100:
        print(f'{i+1} {energia}')
print()    


print("\n4. feladat\n")

kitxt = open("ujprog.txt","w")

for pr in programok:
    pr+="X" # így a program végét is tudja kezelni
    ujpr=""
    irany=pr[0]
    db=1
    for j in range(1,len(pr)):
        if pr[j]==irany:
            db+=1
        else:
            if db==1:
                ujpr+=irany                
            else:
                ujpr+=str(db)+irany                
                db=1
            irany=pr[j]    
    kitxt.write(f'{ujpr}\n')
        
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.\n")


print("\n5. feladat\n")

ujpr=input("Kérek egy új típusú programot (max. 200 ismétlődéssel): ")

rpr=""
db=0

for i in range(len(ujpr)):
    if ujpr[i].isnumeric():
        db=10*db+int(ujpr[i])
    else:
        if db>0:
            rpr+=db*ujpr[i]
            db=0
        else:
            rpr+=ujpr[i]

print(f'A program régi alakja: {rpr}')
                     
input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
