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 S. 121. feladat (2017. december)

S. 121. Egy \(\displaystyle N\times M\)-es négyzetháló mezőire pozitív egész számokat írtunk 1-től 6-ig. A bal felső négyzeten elhelyeztünk egy kockát, amelynek oldalaira szintén egy-egy pozitív egész számot írhatunk 1-től 6-ig. A négyzetháló négyzetei és a kocka oldalai azonos méretűek, a kocka bármely lapja pontosan a négyzetháló négyzetére illeszkedik. A kockát el kell juttatni a négyzetháló jobb alsó sarkába a következő két művelet megfelelő sorrendben történő többszöri alkalmazásával:

1. Az álló kocka a négyzethálóra merőleges forgástengelye körül derékszögben (akár többször is) elforgatható.

2. A kocka az egyik négyzethálón fekvő éle körül derékszögben elforgatható úgy, hogy egy másik lapján álljon, de csak akkor, ha azonos számok kerülnek egymásra.

Tehát a kocka minden helyzetében – induláskor is – olyan lapon áll, amelynek száma egyezik annak a négyzetnek a számával, amelyen áll. A négyzetháló négyzetein található számok ismeretében adjuk meg, hogy milyen számokat írjunk a kocka lapjaira, hogy az eljusson a jobb alsó négyzetre.

A program standard bemenete \(\displaystyle N\) és \(\displaystyle M\), majd a következő \(\displaystyle N\) sor mindegyikében \(\displaystyle M\) darab szám van 1-től 6-ig, amelyek a négyzetháló számai. A program standard kimenete vagy 0, ha nem létezik megfelelő feliratozás a kockára, vagy a kockán szereplő számok. A kezdő helyzetben álló kocka oldalain az alsó, a felső, majd rendre a négy egymáshoz csatlakozó oldalán lévő számokat adjuk meg. Több megoldás esetén elegendő egy alkalmas feliratozást megadni.

Példa:

Bemenet Kimenet
4 5  
1 2 3 1 4
5 3 6 3 5
3 4 1 1 4
3 4 3 6 4
1 3 4 6 2 4

Korlátok: \(\displaystyle 1 \le N, M \le 100\).

Értékelés: a megoldás lényegét leíró dokumentáció 1 pontot ér. További 9 pont kapható arra a programra, amely a korlátoknak megfelelő bemenetekre helyes kimenetet ad 1 másodperc futásidő alatt. Részpontszám kapható arra a programra, amely csak kisebb \(\displaystyle N\), \(\displaystyle M\) érték esetén ad helyes eredményt 1 másodpercen belül.

Beküldendő egy s121.zip tömörített állományban a megoldást leíró dokumentáció és a program forráskódja.

(10 pont)

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


A feladatra több helyes megoldás született, ezek közül két versenyző munkáját emeljük ki.

Az első Gáspár Attila 12. évfolyamos miskolci diák munkája: S121ga.txt, s121ga.cpp.

A második Horváth Botond István 12. évfolyamos győri versenyző munkája: s121hb.pdf, s121hb.cpp.

A megoldásokat az alábbi bemenetekkel teszteltük: s121beki.zip

Mivel egy-egy bemenetre több megoldás is volt, ezért a kimeneteket egy külön program ellenőrizte (kivéve 0 kimenetnél): s121ellenor.cpp.


Statisztika:

9 dolgozat érkezett.
10 pontot kapott:Gáspár Attila, Horváth Botond István, Janzer Orsolya Lili.
8 pontot kapott:3 versenyző.
6 pontot kapott:1 versenyző.
5 pontot kapott:1 versenyző.
3 pontot kapott:1 versenyző.

A KöMaL 2017. decemberi informatika feladatai