Příklad číslo 2
Napište program pro návrh změn v jízdním řádu z A do B.
Vstup:
Vstupem programu je soubor, obsahující seznam spojů (každý spoj na samostatném řádku ve tvaru
<pořadové_číslo> <čas_odjezdu>
Po této části následuje prázdný řádek a za ním informace o tom, kterým spojem kolik pasažérů odjelo, ve tvaru
<pořadové_číslo> <počet_cestujících>
Tato data pokrývají delší období a proto se ke každému spoji vyskytne několik údajů. Data končí koncem vstupního souboru. Ukázka vstupu:
1 9:00 2 18:00 1 29 2 42 1 22 2 44
Výstup:
Úkolem programu je spočítat průměrnou vytíženost jednotlivých spojů (autobus má kapacitu 45 míst) a navrhnout jejich případné změny podle následujících pravidel:
- Mají-li dva časově sousedící spoje vytíženost menší než 40 %, sloučit je do jednoho, který odjíždí v polovině mezi původními časy odjezdů.
- Má-li spoj vytíženost větší než 85 %, rozdělit jej do dvou. Časy jejich odjezdů budou vždy v jedné třetině intervalu mezi původním a předchozím resp. následujícím spojem. Pro první či poslední spoj berte jako jeho souseda půlnoc.
- Ostatní spoje ponechat.
Spoje vzniklé rozštěpením či sloučením neberte v potaz pro další štěpení či slučování - jejich vytíženost zatím není známa. V našem konkrétním příkladě by byl spoj 2 rozdělen na dva s odjezdy v 15:00 a ve 20:00.
Výstupem bude nový seznam spojů ve stejném tvaru, jako na začátku vstupu. Tedy pro náš příklad výstup obsahuje
1 9:00 2 15:00 3 20:00