tanc=[]
tancok=set()
#-----------------------------------------------------------------------------------------
# 1. Olvassa be a tancrend.txt állományban talált adatokat, s annak felhasználásával
#    oldja meg a következő feladatokat!
#-----------------------------------------------------------------------------------------
def F1():
    print('1.feladat - adatok beolvasása')
    
    fbe=open('tancrend.txt','r')
    harom=[]
    for sor in fbe:
        sor=sor.strip()
        if len(harom)==0:
            tancok.add(sor)
        harom.append(sor)
        if len(harom)==3:
            tanc.append(harom)
            harom=[]
    print(tancok)
    print(tanc)
    fbe.close()
        
#-----------------------------------------------------------------------------------------
# 2. Írassa ki a képernyőre, hogy melyik volt az elsőként és melyik az utolsóként
#    bemutatott tánc neve!
#-----------------------------------------------------------------------------------------
def F2():
    print('\n2.feladat')
    print('Elsőként bemutatott tánc  : %s' %tanc[0][0])
    print('Utolsóként bemutatott tánc: %s' %tanc[-1][0])
#-----------------------------------------------------------------------------------------
# 3. Hány pár mutatta be a sambát? A választ jelenítse meg a képernyőn!
#-----------------------------------------------------------------------------------------
def F3():
    print('\n3.feladat')
    samba=0
    for parok in tanc:
        if parok[0]=='samba':
            samba+=1
    print('A samba-t bemutató párok száma: %d' %samba)
#-----------------------------------------------------------------------------------------
# 4. Írassa ki a képernyőre, hogy Vilma mely táncokban szerepelt!
#-----------------------------------------------------------------------------------------
def F4():
    print('\n4.feladat')
    print('Vilma az alábbi táncokban szerepelt:')
    nev='Vilma'     #csak az esetleges tesztelések miatt
    for parok in tanc:
        if parok[1]==nev:   #az 1 indexen a lányok vannak
            print(parok[0])
#-----------------------------------------------------------------------------------------
# 5. Kérje be egy tánc nevét, majd írassa ki a képernyőre, hogy az adott táncot Vilma
#    kivel mutatta be! Például ha a bekért tánc a samba, és Vilma párja Bertalan volt,
#    akkor „A samba bemutatóján Vilma párja Bertalan volt.” szöveg jelenjen meg! 
#    Ha Vilma az adott tánc bemutatóján nem szerepelt, akkor azt írja ki a képernyőre,
#    hogy „Vilma nem táncolt samba-t.”.
#-----------------------------------------------------------------------------------------
def F5():
    print('\n5.feladat')
    tancnev=input('Kérem egy tánc nevét: ')
    if tancnev in tancok:
        nev='Vilma'
        oke=False
        for parok in tanc:
            if parok[0]==tancnev and parok[1]==nev:
                print('A %s bemutatóján Vilma párja %s volt.' %(tancnev,parok[2]))
                oke=True
                break
        if not oke:        
            print('Vilma nem táncolt %s-t.' %tancnev)
    else:
        print('Ilyen tánc nincs!')
    
#-----------------------------------------------------------------------------------------
# 6. Készítsen listát a bemutatón részt vett fiúkról és lányokról! A listát a
#    szereplok.txt nevű szöveges állományba mentse el a következő formátumban: a neveket
#    vesszők válasszák el egymástól, de az utolsó név után már ne szerepeljen írásjel.
#    Például: 
#           Lányok: Lujza, Katalin, Andrea, Emma 
#           Fiúk: Ferenc, Ambrus, Andor, Kelemen, Bertalan
#-----------------------------------------------------------------------------------------
def F6():
    print('\n6.feladat')
    fki=open('szereplok.txt','w')
    global lanyok,fiuk
    lanyok=set()
    fiuk=set()
    for parok in tanc:
        lanyok.add(parok[1])
        fiuk.add(parok[2])
    ki='Lányok: '
    for lany in lanyok:
        ki+=(lany+', ')
    fki.write(ki[0:len(ki)-2]+'\n')
    ki='Fiúk: '
    for fiu in fiuk:
        ki+=(fiu+', ')
    fki.write(ki[0:len(ki)-2])
    fki.close()
#-----------------------------------------------------------------------------------------
# 7. Írja ki a képernyőre, hogy melyik fiú szerepelt a legtöbbször a fiúk közül, és
#    melyik lány a lányok közül! Ha több fiú, vagy több lány is megfelel a feltételeknek,
#    akkor valamennyi fiú, illetve valamennyi lány nevét írja ki!
#-----------------------------------------------------------------------------------------
def F7():
    print('\n7.feladat')
    #A 6.feladatban létrehozott halmazokat listává alakítom, hogy indexelhetőek legyenek.
    llanyok=list(lanyok)
    lfiuk=list(fiuk)
    #Számlálni fogom az egyes lányokat és fiúkat

    #Lányok ---------------------------------
    max_lanyok=[0]*len(llanyok)
    for i,lany in enumerate(llanyok):
        for parok in tanc:
            if parok[1]==lany:
                max_lanyok[i]+=1
    maxi=max(max_lanyok)
    print('Legtöbbször szereplő lány(ok):')
    for i,ertek in enumerate(max_lanyok):
        if ertek==maxi:
            print(llanyok[i])

    #Fiúk -----------------------------------
    max_fiuk=[0]*len(lfiuk)
    for i,fiu in enumerate(lfiuk):
        for parok in tanc:
            if parok[2]==fiu:
                max_fiuk[i]+=1
    maxi=max(max_fiuk)
    print('Legtöbbször szereplő fiú(k):')
    for i,ertek in enumerate(max_fiuk):
        if ertek==maxi:
            print(lfiuk[i])
    
                
#-----------------------------------F Ő M O D U L-----------------------------------------
F1()
F2()
F3()
F4()
F5()
F6()
F7()
