Az I. 346. feladat (2014. április) |
I. 346. Egy \(\displaystyle N\times N\)-es (\(\displaystyle 4\le N\le 50\)) tábla cellái üres vagy színes négyzetek az I. 343. feladatban leírtakhoz hasonlóan. A táblát függőlegesre állítva a színes négyzetek a legalacsonyabb üres helyig egymásra vagy az előre behelyezett és rögzített akadályig csúsznak a gravitáció miatt. Háromféle (piros, kék és zöld színű) négyzet lehetséges, amelyeket P, K és Z betűk jelölnek. Az üres cellát a . karakter, a rögzített helyű akadályokat az A betű jelöli. A táblát szegély veszi körbe, ami megakadályozza, hogy a színes négyzetek kiessenek.
A táblát csak jobbra lehet forgatni. A forgatás hatására a színes négyzetek újra a legalacsonyabb szabad cellába csúsznak, de egymásról nem esnek le. A rögzített akadályok és a forgatás keverő hatását vizsgáljuk.
Számoljuk meg induláskor és forgatás után, hogy hány olyan színes négyzet van a táblában, amelynek egynél több vele azonos színű szomszédja van. Szomszéd cellákon most négyet értünk, az ábrának megfelelően.
Készítsünk programot i346 néven, amely a tábla forgatását, a színek keverését szimulálja.
A program első parancssori argumentuma a táblát leíró adatállomány neve legyen. A fájl első sora \(\displaystyle N\) (\(\displaystyle 4\le N\le 50\)) a tábla méretét és \(\displaystyle K\) (\(\displaystyle 1\le K\le 100\)) a forgatások számát adja meg. Az ezt követő \(\displaystyle N\) sor a tábla indulás előtti cellánkénti tartalmát adja meg.
A parancssor második argumentumaként megadott kimeneti állomány első sorában forgatásonként az olyan színes négyzetek számát írjuk ki szóközzel elválasztva, amelyeknek egynél több velük azonos színű szomszédjuk van. Az ezt követő \(\displaystyle N\) sorban a legutolsó forgatás utáni tábla tartalmát adjuk meg soronként.
Beküldendő a program forráskódja (i346.pas, i346.cpp, ...) és rövid dokumentációja (i346.txt, i346.pdf, ...), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
(10 pont)
A beküldési határidő 2014. május 12-én LEJÁRT.
A kimeneti fájl első sorába a forgatások számánál eggyel több számot ír a program. Az első szám a kezdeti állapotot mutatja. Sajnos egy kis elírás történt a lapban és a minta bemenetre ez az első érték nem 5 a kimenetben, hanem 6.
Tesztállományok: tesztbe.zip teszteredmenyek.ki
Minta megoldás:
Paulovics Zoltán 11. osztályos tanuló (Zrínyi Miklós Gimnázium, Zalaegerszeg) megoldása: i346.vb
Statisztika:
12 dolgozat érkezett. 10 pontot kapott: Csernák Tamás, Fényes Balázs, Kovács 246 Benedek, Kovács Balázs Marcell, Paulovics Zoltán, Radnai Bálint, Uzonyi 000 Ákos. 8 pontot kapott: 2 versenyző. 5 pontot kapott: 2 versenyző. Nem versenyszerű: 1 dolgozat.
A KöMaL 2014. áprilisi informatika feladatai