Feladat: I.367 Korcsoport: - Nehézségi fok: -
Füzet: 2015/február, 97 - 98. oldal  PDF  |  MathML 

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.

Egy M×N (5M,N100) négyzetből álló négyzetháló egyes négyzeteiben átlósan egy tükröt helyeztünk el, amelynek mindkét oldala tökéletesen visszaveri a fényt. A tükrök a négyzetek középpontja körül könnyen elfordulhatnak. A fény egy időegység alatt egy egységnyi (a négyzet oldalhosszának megfelelő) utat tesz meg. A fénysugár a négyzetháló oldalára merőlegesen lép be, valamely négyzet oldalfelező pontján át. Minden pillanatban, amikor a fénysugár a négyzetháló egy négyzetének oldalához ér, a tükrök 90 fokkal elfordulnak.
A bemeneti fájl első sorában a sorok, majd az oszlopok száma olvasható. A második sor adja meg, hogy milyen irányból (b, j, f, l), hányadik egységben (fentről lefele és balról jobbra számozunk) lép be a rendszerbe a fény. Az alatta levő M sor mindegyikében pontosan N karakter van. A szóköz karakter (a mintán o) jelöli azokat az egységeket, ahol nincs tükör, a \ és / karakterek pedig a tükröket, valamint azok kezdeti állapotát mutatják.
A kimeneti fájl első sorában a kilépésig eltelt idő, a második sorában pedig ‐ a bemenet második sorával egyező formában ‐ a kilépési hely olvasható. Ha a fény nem lép ki a rendszerből, az első sorba a -1 érték kerüljön, a második pedig maradjon üresen.

 
BemenetKimenet   5 5   5b 2   b 4ooooo   o\o/o   ooooo   o/o\o   ooooo   
 

A program első parancssori argumentuma a bemeneti fájl neve, a második pedig a kimeneti fájl neve legyen.
Beküldendő egy tömörített i367.zip állományban a program forráskódja (i367.pas, i367.cpp, ...), valamint a program rövid dokumentációja (i367.pdf), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.