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