Házi feladat

3100-F fesztiválprogramok

Á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-F Fesztiválprogramok

Egy fesztiválon több helyszínen, részben egymással párhuzamosan zajlanak a programok. Szeretnél minél több programon részt venni, de egyszerre csak egyet tudsz megnézni. Egy program csak akkor számít meglátogatottnak, ha a kezdetétől a végéig ott vagy: később érkezni, korábban távozni vagy egy programot megszakítani nem lehet. Minden program ugyanannyit ér: kizárólag a meglátogatott programok számát szeretnénk maximalizálni.

Az input.txt UTF-8 kódolású fájl első sora mezőneveket tartalmaz. Minden további sor egy program nevét, kezdési és befejezési időpontját tartalmazza, pontosvesszővel elválasztva, ebben a sorrendben. Az időpontok 24 órás, ÓÓ:pp formátumban szerepelnek. Minden program ugyanazon a napon zajlik, és a kezdési időpontja szigorúan korábbi a befejezésénél. A fájl legalább egy programot tartalmaz, a sorok sorrendje tetszőleges. A programnevek egyediek, nem tartalmaznak pontosvesszőt vagy sortörést, a mezők nincsenek idézőjelezve.

A helyszínek közötti közlekedés idejét elhanyagoljuk. Ha egy program pontosan akkor kezdődik, amikor az előző véget ér, mindkettőn részt vehetsz.

  1. Olvasd be a programok adatait, és állíts össze olyan menetrendet, amelyben a lehető legtöbb programon tudsz elejétől a végéig részt venni! Készíts függvényt, amely visszaadja a kiválasztott programok listáját! A program írja ki a meglátogatható programok legnagyobb számát, majd a kiválasztott programok nevét, kezdési és befejezési időpontját időrendben! Több optimális megoldás esetén bármelyiket megadhatod. A megoldásod rendezés után a rendezett lista egyszeri bejárásával válassza ki a programokat; az összes lehetséges programválogatást ne állítsd elő!

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

Nev;Kezdes;Befejezes
Nagy koncert;08:30;12:30
Bűvészbemutató;11:00;12:00
Táncház;09:30;10:30
Bábelőadás;09:00;10:00
Filmvetítés;11:30;13:30
Dobkoncert;12:00;13:00
Tudományos bemutató;10:00;11:00

Egy megfelelő kimenet:

A meglátogatható programok legnagyobb száma: 4
Bábelőadás;09:00;10:00
Tudományos bemutató;10:00;11:00
Bűvészbemutató;11:00;12:00
Dobkoncert;12:00;13:00

A kiválasztott programok nem ütköznek egymással. Ha a legkorábban kezdődő Nagy koncertre mennél el, a többi program közül már egyiken sem tudnál elejétől a végéig részt venni. A legkorábbi kezdés választása tehát nem feltétlenül adja a legtöbb programot.