"""
2018. május: Társalgó
@author Klemand66
"""


print("\n1. feladat\n")

betxt = open("ajto.txt")

mozgasok, bsz = [], 0

for sor in betxt:
    darsor=sor.strip().split()
    adatsor=[int(darsor[0]),int(darsor[1]),int(darsor[2]),darsor[3]]
            # 0: óra 1: perc 2: azonosító 3: irány (be/ki)
    if darsor[3]=="be":
        bsz+=1
    else:
        bsz-=1
    adatsor.append(bsz)# 4: bentlévők száma
    mozgasok.append(adatsor)
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

bem=list(filter(lambda m: m[3]=="be" ,mozgasok))
kim=list(filter(lambda m: m[3]=="ki" ,mozgasok))

print(f'Az első belépő: {bem[0][2]}')
print(f'Az utolsó kilépő: {kim[-1][2]}')



print("\n3. feladat\n")

mozgasok.sort(key=lambda m: m[2])

azlista, mdblista = [],[]

for m in mozgasok:
    if m[2] in azlista:
        aktindex=azlista.index(m[2])
        mdblista[aktindex]+=1
    else:
        azlista.append(m[2])
        mdblista.append(1)

kitxt = open("athaladas.txt","w")

for i in range(len(azlista)):
    kitxt.write(f'{azlista[i]} {mdblista[i]}\n')
  
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n4. feladat\n")

bentvoltak=list(filter(lambda i: mdblista[i]%2==1 ,range(len(mdblista))))
bentvoltakstr=list(map(lambda i: str(azlista[i]) ,bentvoltak))

print(f'A végén a társalgóban voltak: {" ".join(bentvoltakstr)}')



print("\n5. feladat\n")

maxbentlevok=max(mozgasok, key=lambda m: m[4])
print(f'A társalgóban {maxbentlevok[4]} volt a maximális létszám, \
pl. {maxbentlevok[0]}:{maxbentlevok[1]}-kor.')


print("\n6. feladat\n")

aktaz=int(input(f'Kérem egy személy azonosítóját (1 <= azonosító <= {max(azlista)}): '))



print("\n7. feladat\n")

print("A megadott személy a társalgóban tartózkodott:")

aktmozgasok=list(filter(lambda m: m[2]==aktaz ,mozgasok))

for i,a in enumerate(aktmozgasok):
    if i%2==0:
        print(f'{a[0]}:{a[1]}-',end="")
    else:
        print(f'{a[0]}:{a[1]}')
print()



print("\n8. feladat\n")

ido=0
for i,a in enumerate(aktmozgasok):
    aktido=a[0]*60+a[1]
    if i%2==1:
        ido+=aktido
    else:
        ido-=aktido

if len(aktmozgasok)%2==1:
    ido+=15*60
    bef="a társalgóban volt"
else:
    bef="nem volt a társalgóban"

print(f'A(z) {aktaz}. személy összesen {ido} percet volt bent,\n\
a megfigyelés végén {bef}.')


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
