Loading [MathJax]/jax/output/HTML-CSS/jax.js
Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 367. feladat (2015. február)

I. 367. 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.

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ó.

(10 pont)

A beküldési határidő 2015. március 10-én LEJÁRT.


A feladatot a kitűzéskor nem gondoltuk különösebben nehéznek. Ennek ellenére nemhogy tökéletes megoldást nem adott be senki, de az elérhető pontszám felét is kevesen érték el.

A feladat érdekes részét a forgó tükrök jelentették. Fel lehetett volna ismerni, hogy bemeneti cellában lévő tükör az alapállapothoz képest elfordul. Ettől a cellától számítva a páros lépésben elérhető cellákban elfordított tükrökkel lehet dolgozni, a többi cella esetén pedig az alapállapottal. Ha valaki ezt felismeri, nem kell foglalkoznia a tükrök forgatásával.

A legtöbb beküldő érdemben foglalkozott a rendszerből ki nem lépő fénysugárral. Olexó Gergely állapította meg - helyesen -, hogy ilyen helyzet nem állhat elő. (Az előző bekezdésben foglaltak alapján ez könnyen belátható.)

Azt hihetnénk, hogy a hibás megoldások a feladat félreértelmezésén alapultak. Azonban több esetben is előfordult, hogy adott tesztesetre legalább 6, de volt, hogy 10 különböző kimenet is született.

A tesztesetek közül a 0., 1., 2., 3. bizonyos állapotok kezelését vizsgálják, a 4., 5., 6., 7. esetek véletlenszerűek: i367teszt.zip


Statisztika:

11 dolgozat érkezett.
8 pontot kapott:1 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:1 versenyző.
4 pontot kapott:4 versenyző.
3 pontot kapott:3 versenyző.
2 pontot kapott:1 versenyző.

A KöMaL 2015. februári informatika feladatai