☰ menu
Pavel Satrapa

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:

  1. 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ů.
  2. 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.
  3. 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