novy_ziak = True
triedna_kniha = {}

while(novy_ziak):
    meno = input('Zadajte meno a priezvisko žiaka, pre ktorého idete zapisovať známky:')
    zapisovanie_znamok = True
    znamky = []
    while(zapisovanie_znamok):
        znamka = input(f'Zadaj známku pre žiaka {meno} (v tvare 1, 2, 3, 4 alebo 5) :').strip()
        if(znamka in {'1','2','3','4','5'}):
            znamky.append(int(znamka))
            pokracovanie_zapisovania_znamok = input(
                f'Ak chcete pokračovať v zapisovaní známok pre {meno},tak napíšte "A" '
                f'a ak nechcete pokračovať, tak napíšte "N"').strip()

            if pokracovanie_zapisovania_znamok == "A":
                zapisovanie_znamok = True
            else:
                zapisovanie_znamok = False

        else:
            print('Zadali ste zly tvar známky, prosím skúste ešte raz')
    triedna_kniha[meno] = znamky
    pridanie_ziaka = input(f'Ak chcete pokračovať v pridávani nového žiaka, tak napíšte "A" '
                           f'a ak nechcete pokračovať, tak napíšte "N"').strip()
    if pridanie_ziaka == "A":
        novy_ziak = True
    else:
        novy_ziak = False

triedna_kniha_zoradena = sorted(triedna_kniha.items(), key=lambda x: sum(x[1]))
zoradeni_ziaci_podla_priemeru= []

for i in range(len(triedna_kniha_zoradena)):
    zoradeni_ziaci_podla_priemeru.append(triedna_kniha_zoradena[i][0])

priemery_ziakov = []

for i in range(len(triedna_kniha)):
    priemery_ziakov.append(sum(triedna_kniha[zoradeni_ziaci_podla_priemeru[i]])/len(triedna_kniha[zoradeni_ziaci_podla_priemeru[i]]))

najvacsi_priemer = priemery_ziakov[0]
print()
print()
print(f'Najlepší žiak z tejto triedy je {zoradeni_ziaci_podla_priemeru[0]} s priemerom {najvacsi_priemer} a známkami {triedna_kniha[zoradeni_ziaci_podla_priemeru[0]]}')
idx = 1
dalsi_naj_priemer = priemery_ziakov[idx]

while(najvacsi_priemer == dalsi_naj_priemer):
    print(f'Najlepším žiakom z tejto triedy je tiež {zoradeni_ziaci_podla_priemeru[idx]} s rovnakým priemerom {priemery_ziakov[idx]} a známkami {triedna_kniha[zoradeni_ziaci_podla_priemeru[idx]]}')
    idx += 1
    if(idx > len(priemery_ziakov) -1):
        break
    dalsi_naj_priemer = priemery_ziakov[idx]




