# 1. feladat
with open('bedat.txt') as be:
    adatok = [sor.split() for sor in be.readlines()]

# 2. feladat
print(f'2. feladat\nAz első tanuló {adatok[0][1]}-kor lépett be a főkapun.\n'
      f'Az utolsó tanuló {adatok[-1][1]}-kor lépett ki a főkapun.')

# 3. feladat
with open('kesok.txt', 'w') as ki:
    for id, ido, es in adatok:
        if '07:50' < ido <= '08:15':
            print(ido, id, file=ki)
# 4. feladat
menzadb = sum(1 for adat in adatok if adat[2] == '3')
print(f'4. feladat\nA menzán aznap {menzadb} tanuló ebédelt.')

# 5. feladat
kolcsonzok = set([id for id, ido, es in adatok if es == '4'])
print(f'Az nap {len(kolcsonzok)} tanuló kölcsönzött a könyvtárban.')
print(f'{["Nem voltak többen","Többen voltak"][menzadb<=len(kolcsonzok)]}, mint a menzán.')

# 6. feladat
bent = []
for id, ido, es in adatok:
    if ido < '10:45' and es == '1' and id not in bent:
        bent.append(id)
    if ido < '10:45' and es == '2':
        bent.remove(id)
be = [id for id, ido, es in adatok if '10:50' <= ido <= '11:00' and es == '1']
print("6. feladat\nAz érintett tanulók:")
for id in be:
    if id in bent:
        print(id, end=' ')

print("\n6. feladat\nAz érintett tanulók:\n",",".join(set(be) & set(bent)))

# 7. feladat
azon = input("7. feladat\nEgy tanuló azonosítója: ").upper()
beido, kiido = None, None
for id, ido, es in adatok:
    if id == azon and es == '1':
        beido = ido
        break
else:
    print('Ilyen azonosítójú tanuló aznap nem volt az iskolában. ')
    exit()
for id, ido, es in adatok:
    if id == azon and es == '2':
        kiido = ido
kimp = int(kiido[:2])*60 + int(kiido[3:])
bemp = int(beido[:2])*60 + int(beido[3:])
bentmp = kimp - bemp
print(f'A tanuló érkezése és távozása között {bentmp // 60} óra {bentmp % 60} perc telt el.')
