Házi feladat

3100-Ö öregdiákok csoportképei

Általános leírás

Törekedj arra, hogy szép, áttekinthető kódot írj! Úgy oldd meg a feladatokat, hogy függvényeket használsz a megoldáshoz! A felhasznált függvényekben ne történjen konzolra való kiírás!

Mindegyik feladatban nagyon fontos, hogy bár egyetlen inputfájlt kapsz, úgy írd meg a programod, hogy bármilyen, a feladatkiírásnak megfelelő inputfájllal működjön!

3.100-Ö Öregdiákok csoportképei

Egy maratoni öregdiáktalálkozó déli 12 órakor kezdődik, és másnap reggel 10 óráig tart. A résztvevők eltérő időpontokban érkeznek és távoznak. Sajnos nincs olyan időpont, amikor mindenki egyszerre jelen lenne. A szervezők ezért több csoportképet készítenek, de szeretnék a lehető legkevesebb fényképpel elérni, hogy minden résztvevő legalább egy képen szerepeljen.

Az input.txt UTF-8 kódolású fájl első sora mezőneveket tartalmaz. Minden további sor egy résztvevő teljes nevét, érkezési és távozási időpontját tartalmazza, pontosvesszővel elválasztva. Az időpontok formátuma éééé-HH-nn ÓÓ:pp:mm, például 2026-11-14 23:30:00. Az érkezési és távozási időpontokat DateTime típusú adatként tárold és kezeld! A program más dátumokkal is működjön: az esemény kezdőnapja nem rögzített.

Minden résztvevő egyszer érkezik és egyszer távozik, a kettő között végig jelen van. Az érkezése szigorúan korábbi a távozásánál. Minden időpont a találkozó déli kezdete és másnap 10 órás vége közé esik, a határokat is beleértve. A fájl legalább két résztvevőt tartalmaz, a sorok sorrendje tetszőleges. A nevek egyediek, nem tartalmaznak pontosvesszőt vagy sortörést; a mezők nincsenek idézőjelezve.

A fényképezést pillanatszerűnek tekintjük. A résztvevő az érkezése és a távozása pontos pillanatában is rákerülhet a képre. Minden fényképen az összes akkor jelen lévő résztvevő szerepel, és ugyanaz a személy több képen is megjelenhet. A fényképek készüljenek egész másodperc pontossággal.

  1. Olvasd be az adatokat, és határozd meg, mikor készüljenek a csoportképek úgy, hogy mindenki legalább egy képen szerepeljen, és a képek száma minimális legyen! Készíts függvényt, amely visszaadja a fényképezési időpontok listáját! A megoldás rendezést és mohó kiválasztást használjon; ne állítsd elő az összes lehetséges időpontkombinációt! Írd ki a szükséges képek legkisebb számát, majd időrendben az időpontokat éééé-HH-nn ÓÓ:pp:mm formátumban! Minden időpont alatt sorold fel az adott képen szereplő résztvevőket, teljes nevük szerint magyar ábécérendben! Több optimális megoldás esetén bármelyiket megadhatod.

Például az alábbi bemenet esetén:

Nev;Erkezes;Tavozas
Kovács Anna;2026-11-14 12:00:00;2026-11-14 16:00:00
Nagy Bence;2026-11-14 15:00:00;2026-11-14 18:00:00
Tóth Csilla;2026-11-14 17:00:00;2026-11-15 01:00:00
Kiss Dániel;2026-11-14 23:00:00;2026-11-15 04:00:00
Szabó Eszter;2026-11-15 03:00:00;2026-11-15 08:00:00
Varga Ferenc;2026-11-15 07:00:00;2026-11-15 10:00:00

Egy megfelelő kimenet:

A szükséges képek száma: 3
2026-11-14 16:00:00
Kovács Anna
Nagy Bence

2026-11-15 01:00:00
Kiss Dániel
Tóth Csilla

2026-11-15 08:00:00
Szabó Eszter
Varga Ferenc

Két kép nem lenne elegendő: Kovács Anna, Tóth Csilla és Szabó Eszter jelenléti időszakai páronként nem fedik egymást, ezért őket három különböző képen kell lefényképezni.