def F1():
    global osvenyek, dobasok
    osvenyek=[]
    fbe=open('osvenyek.txt','r')
    for sor in fbe:
        sor=sor.strip()
        osvenyek.append(sor)
    fbe.close()

    fbe=open('dobasok.txt','r')
    sor=fbe.readline().strip().split()
    dobasok=list(map(int,sor))
    fbe.close()
    
def F2():
    print('2. feladat')
    print(f'A dobások száma: {len(dobasok)}')
    print(f'Az ösvények száma: {len(osvenyek)}')

def F3():
    print('3. feladat')
    # PROGRAMOZÁSI TÉTEL - szélsőértékkeresés (max,min)
    maxh=len(osvenyek[0])
    ssz=1
    for i in range(1,len(osvenyek)):
        if len(osvenyek[i])>maxh:
            maxh=len(osvenyek[i])
            ssz=i+1
    print(f'Az egyik leghosszabb a(z) {ssz}. ösvény, hossza: {maxh}')

    rendezett=sorted(osvenyek,key=lambda elem:len(elem),reverse=True)
    maxh=len(rendezett[0])
    ssz=osvenyek.index(rendezett[0])+1
    # legn=max(osvenyek,key=lambda elem:len(elem))
    print(f'Az egyik leghosszabb a(z) {ssz}. ösvény, hossza: {maxh}')

def F4():
    print('4. feladat')
    global os,jsz
    os=int(input('Adja meg egy ösvény sorszámát! '))
    jsz=int(input('Adja meg a játékosok számát! '))

def F5():
    print('5. feladat')
    osveny=osvenyek[os-1]
    lista=list(osveny)
    M=lista.count('M')
    V=lista.count('V')
    E=lista.count('E')
    if M>0:
        print(f'M: {M} darab')
    if V>0:
        print(f'V: {V} darab')
    if E>0:
        print(f'E: {E} darab')
    
def F6():
    fki=open('kulonleges.txt','w')
    osveny=osvenyek[os-1]
    for i in range(len(osveny)):
        if osveny[i]!='M':
            print(f'{i+1}\t{osveny[i]}',file=fki)
    fki.close()

def F7():
    print('7. feladat')
    kor=0                       # hányadik körben vagyunk
    ukor=0                      # a játék vége ennél a körnél van
    oh=len(osvenyek[os-1])      # ösvényünk hossza
    szum=[0]*jsz                # jsz==5  [0,0,0,0,0]  dobások összegzése játékosonként
    # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 6 2 1 3 4 4 2 6 2 4 5 6 3 2 1 2 3 1 1 6 4
    
    for i in range(0,len(dobasok)-jsz,jsz):
        adott_kor=dobasok[i:i+jsz]          # adott_kor   2 4 6 5 6
        for j in range(jsz):
            szum[j]+=adott_kor[j]
        kor+=1
        # valaki elérte-e az osvény végét
        for j in range(jsz):
            if szum[j]>=oh:
                ukor=kor
                jsorszam=j+1
        if ukor!=0:
            break

    print(f'A játék a(z) {ukor}. körben fejeződött be. A legtávolabb jutó(k) sorszáma: {jsorszam}')

def F8():
    print('8. feladat')
    kor=0                       # hányadik körben vagyunk
    ukor=0                      # a játék vége ennél a körnél van
    oh=len(osvenyek[os-1])      # ösvényünk hossza
    szum=[0]*jsz                # jsz==5  [0,0,0,0,0]  dobások összegzése játékosonként
    nyertesek=[]
    # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 6 2 1 3 4 4 2 6 2 4 5 6 3 2 1 2 3 1 1 6 4
    
    for i in range(0,len(dobasok)-jsz,jsz):
        adott_kor=dobasok[i:i+jsz]          # adott_kor   2 4 6 5 6
        for j in range(jsz):
            hozzaad=adott_kor[j]        # amekkorát dobott a j. játékos
            szum[j]+=hozzaad
            
            if szum[j]<oh:
                holvan=osvenyek[os-1][szum[j]-1] # az a mező, amin éppen áll a játékos
                if holvan=='E':
                    szum[j]+=hozzaad
                if holvan=='V':
                    szum[j]-=hozzaad
        kor+=1
        # valaki elérte-e az osvény végét
        
        for j in range(jsz):
            if szum[j]>=oh:
                ukor=kor
                nyertesek.append(j+1)
        if ukor!=0:
            break

    print('Nyertesek:',end=' ')
    for i in range(len(nyertesek)):
        print(nyertesek[i],end=' ')
    print('\nA többiek pozíciója:')
    for i in range(jsz):
        if i+1 not in nyertesek:
            print(f'{i+1}. játékos, {szum[i]}. mező')

# ---------------------------------------------------------------------
F1()
F2()
F3()
F4()
F5()
F6()
F7()
F8()