def kto_zmuri_1(mena, pocet_slabik):
    ''' Pre zadaný zoznam mien a dĺžku vyčítanky (počet slabík) určí, kto bude žmúriť. Smer výčítania sa mení.
    :param mena: zoznam mien
    :type mena: list[str]
    :param pocet_slabik: počet slabík vyčítanky
    :type pocet_slabik: int
    :return: meno, ktoré v zozname ostane ako posledné
    :rtype: str
    '''
    mena = mena.copy()
    idx_prst = 0
    smer_vpravo = True

    while len(mena) > 1:
        if smer_vpravo:
            idx_prst = (idx_prst + (pocet_slabik - 1)) % len(mena)
            print(f'vypadáva: {mena[idx_prst]}')  # kontrolný výpis
            mena.pop(idx_prst)
            idx_prst -= 1
        else:
            idx_prst = (idx_prst - (pocet_slabik - 1)) % len(mena)
            print(f'vypadáva: {mena[idx_prst]}')  # kontrolný výpis
            mena.pop(idx_prst)
        smer_vpravo = not smer_vpravo
    return mena[0]

def kto_zmuri_2(mena, pocet_slabik):
    ''' Pre zadaný zoznam mien a dĺžku vyčítanky (počet slabík) určí, kto bude žmúriť. Smer výčítania sa mení.
    :param mena: zoznam mien
    :type mena: list[str]
    :param pocet_slabik: počet slabík vyčítanky
    :type pocet_slabik: int
    :return: meno, ktoré v zozname ostane ako posledné
    :rtype: str
    '''
    mena = mena.copy()
    idx_prst = 0
    smer = 1

    while len(mena) > 1:
        idx_prst = (idx_prst + smer * (pocet_slabik - 1)) % len(mena)
        print(f'vypadáva: {mena[idx_prst]}')  # kontrolný výpis
        mena.pop(idx_prst)
        if smer == 1:
            idx_prst = idx_prst - 1
        smer = -smer
    return mena[0]


mena = ['Adam', 'Bea', 'Cyril', 'Dano', 'Ela']
pocet_slabik = 7
print(f'žmúri: {kto_zmuri_1(mena, pocet_slabik)}')
print(f'žmúri: {kto_zmuri_2(mena, pocet_slabik)}')
