Feladat: I.286 Korcsoport: - Nehézségi fok: -
Füzet: 2012/február, 100 - 101. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Az alábbi játékban adott egy 4 sorból és 8 oszlopból álló terület, amelyet 8 darab, különböző alakú elemmel kell kitölteni, az egyes elemeket pontosan egyszer felhasználva. Az itt látható ábra egy lehetséges kitöltést ad meg. (A rajzzal az egyes elemek alakját is megadjuk.)

 
 

Természetesen ezen elemeket többféleképpen is elhelyezhetjük úgy, hogy a rendelkezésre álló területet pontosan kitöltsék. Az elemeket 90-os fordulatokkal forgathatjuk vagy meg is fordíthatjuk, tehát mindegyik elemnek 8 helyzete lehet.
A játék során nem pusztán az üres területet kell kitöltenünk, hanem megadjuk az egyes elemek színét és a terület néhány helyén megszabjuk, hogy oda milyen színű résznek kell kerülnie.
Írjunk programot, amely megadja a darabok egy lehetséges elhelyezésének módját. A program első parancssori argumentuma az elhelyezendő darabok színét és a terület bizonyos helyeinek színét tartalmazó fájl neve, a második parancssori argumentum pedig a megoldást tartalmazó fájl neve. A programot csak olyan bemenetekkel teszteljük, amelyeknél van megfelelő elhelyezés.
A bemeneti állomány első sorában a nyolc elem (a rajzon megadott számsorrendben) színét adja meg, egymástól szóközzel elválasztva. A színt egyetlen karakter jelöli. A következő 4 sor a területet adja meg, soronként 8‐8 karakterrel, amelyeket egymástól egy szóköz választ el. Amennyiben egy hely színe kötött, ott a színt jelölő karakter van, egyébként a * szerepel.
A kimeneti állomány a kitöltött téglalapot írja le. Pontosan 4 sort tartalmaz, soronként 8, egymástól szóközzel határolt számmal. A számok az elem sorszámát adják.
 
 

Beküldendő egy tömörített i286.zip állományban a program forráskódja (i286.pas, i286.cpp, ...), valamint a program dokumentációja (i286.txt, i286.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ó.