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/S. 58. feladat (2021. december)

I/S. 58. Egy épület alaprajza egy \(\displaystyle N\) oszlopból és \(\displaystyle N\) sorból álló négyzetráccsal szemléltethető. A négyzetrács minden egységnégyzete kétféle lehet: foglalt, vagy szabad. Foglalt egységnégyzeteknek megfelelő területekre nem léphet senki, szabad egységnégyzeteknek megfelelő területeken viszont szabadon lehet sétálni.

Tűzriadó esetén az épület minden szabad négyzettel adott területén egy fluoreszkáló nyíl jelenik meg, amely mutatja, merre kell továbbhaladni, hogy biztonságosan elhagyhassuk az épületet. Egy nyíl négy különböző irányba mutathat az alaprajzon: fel, jobbra, le, balra.

Miután felfestésre kerültek a nyilak, tűzriadót tartanak az épületben, hogy kipróbálják, mindenhova jó irányba mutató nyíl került-e. A próba kezdetén minden szabad egységnégyzetnek megfelelő területen pontosan egy ember áll. Minden időegység alatt mindenki megpróbálja végrehajtani az alatta lévő nyíl által mutatott parancsot.

Az alaprajzot és a tűzriadó tervét egy \(\displaystyle T\) tömb írja le. Az alaprajzon az \(\displaystyle i\)-edik sor \(\displaystyle j\)-edik egységnégyzetének állapotát a \(\displaystyle T[i][j]\) tömbelem értéke adja: \(\displaystyle \text{'*'}= \text{foglalt}\), \(\displaystyle \text{'F'}= \text{felfele}\) nyíl, \(\displaystyle \text{'J'}=\text{jobbra}\) nyíl, \(\displaystyle \text{'L'}=\text{lefele}\) nyíl és \(\displaystyle \text{'B'}=\text{balra}\) nyíl.

Ha egy ember alatt lévő nyíl egy szabad területre mutat, akkor oda átlép az illető. Ha foglalt cellára mutat, akkor helyben marad. Ha az épületből kifelé mutat, akkor biztonságban kijut az épületből és többé nem megy vissza oda a próba során. A próba \(\displaystyle M\) időegységig tart. Adjuk meg, hogy \(\displaystyle M\) időegység után hányan vannak még az épületben.

A bemenet első sorában az \(\displaystyle N\) és \(\displaystyle M\) egész szám található. A következő \(\displaystyle N\) sor mindegyikében \(\displaystyle N\) karakter található: az \(\displaystyle i\)-edik sor \(\displaystyle j\)-edik eleme \(\displaystyle T[i][j]\).

A kimenet egyetlen sorában egy szám szerepeljen: az \(\displaystyle M\) időegység után az épületben lévő személyek száma.

Példa:

Bemenet (a / sortörést helyettesít)Kimenet
4 6 / JJFF / F*BB / FLJJ / FBJB6

A kezdetben a \(\displaystyle T[2][3]\), \(\displaystyle T[2][4]\), \(\displaystyle T[3][2]\), \(\displaystyle T[4][2]\), \(\displaystyle T[4][3]\), \(\displaystyle T[4][4]\) egységnégyzeteken álló emberek maradnak az épületben 6 időegység után.

Korlátok: \(\displaystyle 1\le N\le 750\), \(\displaystyle T[i][j]\in \{\text{'*'},\text{'F'},\text{'J'},\text{'L'},\text{'B'}\}\). Időlimit: 0,3 mp.

Értékelés: a pontok 50%-a kapható, ha \(\displaystyle 1\le N\le 30\).

Beküldendő egy is58.zip tömörített állományban a megfelelően dokumentált és kommentezett forrásprogram, amely tartalmazza a megoldás lépéseit, valamint megadja, hogy a program melyik fejlesztői környezetben futtatható.

(10 pont)

A beküldési határidő 2022. január 17-én LEJÁRT.


Statisztika:

10 dolgozat érkezett.
10 pontot kapott:Sándor Péter, Seprődi Barnabás Bendegúz.
9 pontot kapott:Nagy 292 Korina.
8 pontot kapott:1 versenyző.
7 pontot kapott:3 versenyző.
2 pontot kapott:1 versenyző.
1 pontot kapott:1 versenyző.
0 pontot kapott:1 versenyző.

A KöMaL 2021. decemberi informatika feladatai