"""
2014. május idegennyelvű: Céllövészet
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("verseny.txt")

l=int(betxt.readline().strip())
loadatok=[]

for i in range(l):
    sor=betxt.readline().strip()
    loadatok.append(sor)

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



print("\n2. feladat\n")

print("Az egymást követően többször találó versenyzők: ")

for i,losor in enumerate(loadatok):
    if "++" in losor:
        print(i+1,end=" ")
print()



print("\n3. feladat\n")

lovesek=list(map(lambda losor:len(losor) ,loadatok))

print(f'A legtöbb lövést leadó versenyző rajtszáma: {lovesek.index(max(lovesek))+1}')



print("\n4. feladat\n")

def loertek(sor):
    aktpont=20
    ertek=0
    for i in range(len(sor)):
        if aktpont>0 and sor[i]=="-":
            aktpont-=1
        else:
            ertek+=aktpont
    return ertek

print(f'Az elkészített függvény:\n\n\
def loertek(sor):\n\
    aktpont=20\n\
    ertek=0\n\
    for i in range(len(sor)):\n\
        if aktpont>0 and sor[i]=="-":\n\
            aktpont-=1\n\
        else:\n\
            ertek+=aktpont\n\
    return ertek')



print("\n5. feladat\n")

rsz=int(input(f'Adjon meg egy rajtszámot! (1<= rajtszám <= {l}): '))

losor=loadatok[rsz-1]
losorlist=list(losor)
talindexek=list(filter(lambda i:losorlist[i]=="+" ,range(len(losorlist))))
talsszok=list(map(lambda i:str(i+1), range(len(talindexek))))
print(f'5a. feladat: Célt érő lövések: {" ".join(talsszok)}')
print(f'5b. feladat: Az eltalált korongok száma: {len(talindexek)}')

hibatlanok=losor.split("-")
leghosszabb=max(hibatlanok)
"""
ASCII-kód alapján történik az összehasonlítás.
Mivel pl. +++>++, csupa + jel esetén éppen a leghosszabb sorozatot adja meg.
(Érdekesség: ->+, így a max(loadatok) a legrosszabbul kezdődő lövéssorozatot adná meg.)
"""
print(f'5c. feladat: A leghosszabb hibátlan sorozat hossza: {len(leghosszabb)}')

print(f'5d. feladat: A versenyző pontszáma: {loertek(losor)}')



print("\n6. feladat\n")

eredmenyek=[]
for i,losor in enumerate(loadatok):
    eredmenyek.append([i+1,loertek(losor)]) # 0: rajtszám, 1: lőérték
    
eredmenyek.sort(key=lambda er: er[1], reverse=True)

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

hely, aktpont=0, eredmenyek[0][1]+1 # mindkét érték rögtön változni fog

for i,er in enumerate(eredmenyek):
    if er[1]<aktpont:
        hely=i+1
        aktpont=er[1]
    kitxt.write(f'{hely:2}\t{er[0]:2}\t{er[1]}\n')
    
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")

