Az S. 76. feladat (2012. december) |
S. 76. A Véletlen Vasút játékgyár játékvasút építéséhez alkalmas egymáshoz illeszthető pályaelemeket, mozdonyt és vasúti kocsikat rak egy-egy megvásárolható csomagba. Az egyes pályaelemekből minden csomagba más és más darabszámú kerül. A cég arra törekszik, hogy minden csomagba úgy válogassa az elemeket, hogy azok mindegyikének fölhasználásával olyan pálya legyen építhető, amelynek valamely pontjáról elindított vonat bejárja a teljes pályát és visszatér az indulási helyre. Tehát az egyszer elindított vonat addig járja a pályát, amíg a mozdony bírja.
A VV játékcég nem ad segítséget a pályák építéséhez, így a vásárlók és gyermekeik sokszor nem tudják megépíteni a fent vázolt ideális vasutat. Ellenben a cég ígéri, hogy bárki, akinek a csomagjából nem készíthető ideális pálya, egy második csomagot kap ajándékba. A pályaépítés nehézsége és a cég csábító ajánlata miatt több vásárló lapunktól kér segítséget. Kérésük az, hogy a pályaelemek ismeretében adjunk meg egy ideális pályát, illetve ha ez nem lehetséges, akkor lehetőleg adjunk útmutatást arra vonatkozóan, hogy az ideális pálya miért nem építhető meg.
A vasútépítő csomagban a következő, mindkét oldalukon kerékvájatot tartalmazó pályaelemek fordulnak elő: két egység hosszú egyenes szakasz; egy egység sugarú negyed körív; mindkét irányban két egység hosszú, merőleges kereszteződés, ahol a pályák középen metszik egymást.
Az íves elem így balra és jobbra kanyarodó elemként is fölhasználható. Az ideális pályán a kereszteződések mindkét merőleges irányához csatlakozik a pálya. A pályaelemek csak a csatlakozó végükkel érintkeznek egymással, másképp nem. A cég legalább 25, de legföljebb 35 pályaelemet helyez minden csomagba úgy, hogy nincs benne négynél több kereszteződés. Készítsünk programot, amely a standard bemenet egyetlen sorából rendre beolvassa a kereszteződések, az egyenes elemek és az íves elemek számát, majd - amennyiben felépíthető egy ideális pálya - a standard kimenetre ír egy ideális pályát valamely pontjából elindulva és bejárva. A kereszteződéseken való áthaladáskor X, az egyenes elemeknél E, a balra és jobbra fordulásoknál B és J karakterek jelentik az egyes pályaelemeket. Amennyiben nem lehetséges ideális pályát készíteni az elemekből, akkor a kimenet első sorába írjuk a ,,Nem lehet ideális pályát készíteni.'' mondatot, míg a következő sorába - amennyiben tudunk - egy rövid indoklást arról, hogy miért nem.
Beküldendő egy tömörített s76.zip állományban a program forráskódja (s76.pas, s76.cpp, ...) az .exe és más, a fordító által generált állományok nélkül, a program rövid dokumentációja (s76.txt, s76.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrás mely fejlesztői környezetben fordítható.
A megoldáshoz segítségként néhány mintabemenet: s76peldabe.txt
(10 pont)
A beküldési határidő 2013. január 10-én LEJÁRT.
A feladat megoldását döntően Jákli Aida Karolina 10. osztályos zalaegerszegi diák és Kalló Kristóf 11. évfolyamos budapesti versenyző dokumentációja alapján készült: s76mo.pdf .
Mintaprogramként Vályi András 10. osztályos debreceni diák programját közöljük: s76va.cpp.
Statisztika:
7 dolgozat érkezett. 9 pontot kapott: Jákli Aida Karolina, Vályi András. 8 pontot kapott: 2 versenyző. 7 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 3 pontot kapott: 1 versenyző.
A KöMaL 2012. decemberi informatika feladatai