A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre. Bergengóciában minden évben megrendezésre kerül a Nemzeti Villamoshajtó Bajnokság, a királyság legnevesebb versenysorozata. Ennek keretében minden nagyváros egy-egy versenyt rendez, melynek helyszíne a város leghosszabb villamospályája. A versenyzők egyesével indulnak, céljuk, hogy a lehető legrövidebb idő alatt végighaladjanak a pályán. Bár a verseny ideje alatt az utasszállítás szünetel, a teljes közúti forgalmat még egy ekkora attrakció kedvéért sem lehet leállítani. A szörnyű balesetek elkerülése érdekében ezért a versenyzők a kereszteződéseknél a piros jelzésen a verseny során sem haladhatnak át. Írjunk programot, mely meghatározza, hogy optimális esetben mennyi idő alatt teljesíthető a teljes táv. A program a pálya leírását fájlból olvassa, az eredményt fájlba írja. A bemeneti, illetve kimeneti fájlok nevei az első, illetve második parancssori argumentumok. A villamos eleje az koordinátájú pontból indul a időpillanatban, és minden időegység kezdetén , 0, egységgel változtathatja (pillanatszerűen) a sebességét, mellyel ezután egységnyi ideig egyenletesen halad az tengely mentén. A villamos megállhat, de nem tolathat és nem is lépheti túl az maximális sebességet. A kereszteződéseknél a villamos elejének kell a zöld jelzésen áthaladni, a lámpa állapotaihoz balról nyílt, jobbról zárt időintervallumok tartoznak. (Tehát az éppen pirosra váltó lámpán a villamos még áthaladhat, de az éppen zöldre váltón még nem.) Célba érkezésnek azt a pillanatot tekintjük, amikor a villamos elejének koordinátája megegyezik a pálya hosszával. A bemenet első sorában három, szóközzel elválasztott szám szerepel: a pálya hossza, a lámpák száma, illetve a villamos végsebessége. Az ezt követő db sor mindegyikében egy-egy lámpa leírása következik: a lámpa pozíciója, állapotváltásainak száma (de összesen legfeljebb 1000 állapotváltás), majd db szám, az egyes piros-zöld állapotváltások időpontja, mind szóközzel elválasztva. Kezdetben minden lámpa zöld jelzést mutat. A kimenetben egyetlen szám szerepeljen: a teljes táv megtételéhez minimálisan szükséges idő egészrész-törtrész alakban (), ahol a célba érkezés sebessége.
A maximális pontszám eléréséhez a programnak a legnagyobb tesztesetekre is néhány percen belül le kell futnia (egy korszerű PC-n). A feladat 64kB memóriában is megoldható, ezért az időkorlát az ilyen környezetekben készült megoldásokra is vonatkozik, így (átmeneti) segédfájlok használatát ott sem javasoljuk. Beküldendő a program forráskódja (s44.pas, s44.cpp, ), valamint a program rövid dokumentációja (s44.txt, s44.pdf, ). A dokumentáció tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztőkörnyezetben fordítható és hogyan paraméterezhető. |