Á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-Ö2 Öregdiákok – mikor voltak a legtöbben?
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 feljegyezték minden résztvevő érkezését és távozását. Most arra kíváncsiak, hányan voltak egyszerre a legtöbben a találkozón, és mikor alakult ki először ez a létszám. Azt is szeretnék tudni, kik voltak jelen ebben a pillanatban.
Ez a feladat ugyanazt a bemeneti fájlt használja, mint az Öregdiákok csoportképei feladat. Annak megoldására itt nincs szükség: az alábbi leírás minden szükséges szabályt tartalmaz.
Bemeneti fájl
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, ebben a sorrendben:
Nev;Erkezes;Tavozas
Az időpontok formátuma éééé-HH-nn ÓÓ:pp:mm,
például 2026-11-14 23:30:00.
Az 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.
Mikor számít jelen lévőnek egy résztvevő?
A csoportképes feladattal megegyezően
a résztvevő az érkezése és a távozása pontos pillanatában is jelen van.
Egy t időpontban tehát pontosan akkor számít bele a létszámba, ha:
érkezés ≤ t és t ≤ távozás
Ha valaki pontosan akkor érkezik, amikor egy másik résztvevő távozik, akkor abban a pillanatban mindketten jelen vannak. Az ilyen egybeeséseket másodperc pontossággal kell figyelembe venni; egyetlen pillanatban kialakuló létszám is lehet a keresett maximum.
Feladatok
Minden részfeladat előtt írd ki a sorszámát!
- Olvasd be és tárold a résztvevők adatait! Írd ki a résztvevők teljes számát!
- Rendezés felhasználásával határozd meg az egyidejűleg jelen lévők legnagyobb számát, és azt a legkorábbi időpontot, amikor ez a létszám kialakult! Készíts függvényt, amely visszaadja a maximális létszámot és ezt az időpontot! Ha a maximum több különböző időpontban vagy hosszabb időszakon át is fennáll, akkor is csak a legelső ilyen időpontot add meg!
-
Írd ki a maximális létszámot és a hozzá tartozó legkorábbi időpontot
éééé-HH-nn ÓÓ:pp:mmformátumban! Készíts függvényt, amely az eredeti résztvevőlista és egy időpont alapján visszaadja az akkor jelen lévő résztvevők listáját! Ezt használva sorold fel a kapott időpontban jelen lévő öregdiákokat, teljes nevük szerint magyar ábécérendben, soronként egy névvel!
Megoldási megkötés
A maximális létszám kereséséhez az érkezések és távozások rendezett eseményeit járd be! Ne ellenőrizd külön a találkozó minden másodpercét, és ne számold meg minden egyes eseményidőpontnál az összes résztvevő újravizsgálásával, hogy hányan vannak jelen! A kiválasztott időponthoz tartozó névsor elkészítéséhez az eredeti lista egyszeri bejárása megengedett.
Ügyelj az azonos időpontú eseményekre! Ugyanabban a pillanatban előbb az összes érkezővel növeld a létszámot, ezután vizsgáld meg a maximumot, és csak utána vond le az összes távozót. Így az érkezők és távozók is beleszámítanak az adott pillanat létszámába.
Példa
Az alábbi input.txt 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 16:00:00;2026-11-14 18:00:00
Tóth Csilla;2026-11-14 16:00:00;2026-11-14 17: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
A kiírandó eredmény:
1. feladat
A résztvevők száma: 6
2. feladat
A legnagyobb egyidejű létszám: 3
Először ekkor: 2026-11-14 16:00:00
3. feladat
Az ekkor jelen lévő résztvevők:
Kovács Anna
Nagy Bence
Tóth Csilla
16 órakor Anna még jelen van, Bence és Csilla pedig éppen megérkezik, ezért ebben a pillanatban hárman vannak a találkozón. Anna távozása után már csak ketten maradnak. Az éjszakai és reggeli időszakban sem alakul ki háromnál nagyobb létszám.