# # # # # # # # # # # # # # # # # # #
# I.527.                            #
# Nagy 292 Korina 8.osztály         #
# Kecskeméti Bányai Júlia Gimnázium #
# Phyton 3.8                        #
# # # # # # # # # # # # # # # # # # #


# 1.feladat
print ("1. feladat:")
# az adatok beolvasása és egy listában (ismertsegek_egyutt) eltárolása
# az 'ismertsegek_egyutt' listát a program szétbontja egy olyan listára, amelynek minden eleme 2 egymással ismertségben álló személy monogramját tartalmazza
file = open("parok.txt", "r")
ismertsegek_egyutt = (file.readline()).split()
ismertsegek = []
db = (len(ismertsegek_egyutt))
for i in range (0, db-1, 2):
    lista = [ismertsegek_egyutt[i], ismertsegek_egyutt[i+1]]
    ismertsegek.append(lista)
file.close()
print ("A parok.txt állományt beolvastam.")
#-----------------------------------------------------------

# 2.feladat
print ("2. feladat:")
# a különböző monogramok megszámolása
# a programrész minden monogramot egyesével megvizsgál és eldönti, hogy ez szerepel-e már a 'szemelyek' listában
# ha igen, akk továbblép, ha nem, akk hozzáfűzi a listához
szemelyek = []
for i in range (0, db):
    szerepel = False
    for j in range (0, len(szemelyek)):
        if (szemelyek[j] == ismertsegek_egyutt[i]):
            szerepel = True
    if (szerepel == False):
        szemelyek.append (ismertsegek_egyutt[i])
print ("Az állományban", len(szemelyek), "személy szerepel.")            
#-----------------------------------------------------------

# 3.feladat
print ("3. feladat:")
monogram = input ("Adja meg egy személy monogramját: ")     # monogram bekérése és egy változóban való eltárolása
# a ciklus megnézi az összes ismertséget, és ha szerepel benne a bekért monogram, akkor az adott ismerős monogramját egy listához fűzi
ismerosei = []
for i in range (0, len(ismertsegek)):
    if (ismertsegek[i][0] == monogram):
        ismerosei.append (ismertsegek[i][1])
    elif (ismertsegek[i][1] == monogram):
        ismerosei.append (ismertsegek[i][0])
# növekvőbe, azaz ABC sorrendbe rendezi a monogramokat
a = 0
while(a != len(ismerosei)):
    b = 0
    a = len(ismerosei)
    while (b+1 < len(ismerosei)):
        if (ismerosei[b] > ismerosei[b+1]):
            ismerosei[b], ismerosei[b+1] = ismerosei [b+1], ismerosei[b]
            a = a - 1
        b = b + 1
#kimenet a megfelelő formátumban:
print (monogram, " ismerősei:", end = " ")
for i in range (0, len(ismerosei)):
    print (ismerosei[i], end = " ")
print ("\n", end = "")
#-----------------------------------------------------------

# 4.feladat
print ("4. feladat:")
# az összes ember egyenkénti ismerőseinek száma egy listában (ismerosok_szam) eltárolása
ismerosok_szama = []
for i in range (0, len(szemelyek)):
    ismerosei_fo = 0
    for j in range (0, len(ismertsegek_egyutt)):
        if (szemelyek[i] == ismertsegek_egyutt[j]):
            ismerosei_fo = ismerosei_fo + 1
    ismerosok_szama.append (ismerosei_fo)
# a legnagyobb szám megkeresése az 'ismerosok_szama' listából, azaz az 1 ember által ismert legtöbb ismerős
# a legnagyobb szám sorszáma ismeretében megadható a személy monogramja, ez a 'szemelyek' listának az adott eleme
legnagyobb = 0
legnagyobb_sorszam = 0
for i in range (0, len(ismerosok_szama)):
    if (ismerosok_szama[i] > legnagyobb):
        legnagyobb = ismerosok_szama[i]
        legnagyobb_sorszam = i
#kimenet a megfelelő formátumban:
print ("A legtöbb ismerőse ", szemelyek[legnagyobb_sorszam], " személynek van, szám szerint ", legnagyobb, ".", sep ="")
#-----------------------------------------------------------

# 5.feladat
print ("5. feladat:")
monogram_2 = input("Kérem adja meg egy másik személy azonosítóját: ")       # másik monogram bekérése
ismerosei_2 = []
# a másodjára bekért monogram ismerőseinek egy listában (ismerosei_2) való eltárolása
# (az elsőre bekért monogram ismerőseinek monogramjai már a 3.feladatban bekerültek az 'ismerosei' listába)
for i in range (0, len(ismertsegek)):
    if (ismertsegek[i][0] == monogram_2):
        ismerosei_2.append (ismertsegek[i][1])
    elif (ismertsegek[i][1] == monogram_2):
        ismerosei_2.append (ismertsegek[i][0])
# az 'ismerosei' lista összes elemének összehasonlítása az 'iserosei_2' lista összes elemével,
# ha van egyezés, azaz van közös ismerős, akk a 'kozos_ismeros_fo" változó értékének megnövelése 1-gyel
kozos_ismeros_fo = 0
for i in range (0, len(ismerosei)):
    for j in range (0, len(ismerosei_2)):
        if (ismerosei[i] == ismerosei_2[j]):
            kozos_ismeros_fo = kozos_ismeros_fo + 1
# kimenet:
print (monogram, " és ", monogram_2, " közös ismerőseinek száma: ", kozos_ismeros_fo, ".", sep = "")
#-----------------------------------------------------------

# 6.feladat
print ("6. feladat:")
ismerosei.append (monogram)         # az előbb (a 3-as feladatban) bekért személy ismerőseit tartalmazó listához hozzáfűzöm a személy monogramját is
nem_ismeri = []
# a ciklus megkeresi az összes személy ismerősét és az összes ismerőst összehasonlítja a 3.f.-ban befért számmal és ismerőseivel
# ha NEM egyezik egy személyhez tartozó összes összehasonlítás közül egyik sem, akkor a program hozzáadja egy listához, amely majd a kiírandó monogrammokat tartalmazza
for i in range (0, len(szemelyek)):
    ismerosei_vizsgalt = []
    for j in range (0, len(ismertsegek)):
        if (ismertsegek[j][0] == szemelyek[i]):
            ismerosei_vizsgalt.append (ismertsegek[j][1])
        elif (ismertsegek[j][1] == szemelyek[i]):
            ismerosei_vizsgalt.append (ismertsegek[j][0])
    ismerosei_vizsgalt.append(szemelyek[i])
    megfelel = True
    for j in range (0, len(ismerosei_vizsgalt)):
        for k in range (0, len(ismerosei)):
            if (ismerosei[k] == ismerosei_vizsgalt[j]):
                megfelel = False
    if (megfelel == True):
        mar_szerepel = False
        for k in range (0, len(nem_ismeri)):
            if (nem_ismeri[k] == szemelyek[i]):
                mar_szerepel = True
        if (mar_szerepel == False):
            nem_ismeri.append (szemelyek[i])
#kimenet:
print (monogram, "-t és ismerőseit sem ismeri", sep ="", end = " ")
for i in range (0, len(nem_ismeri)):
    print (nem_ismeri[i], end = " ")
print (".")            
#-----------------------------------------------------------
