|
|||||||||||
ÉpítőkockákAz informatika sok területén használnak egyszerű, absztrakt modelleket mind analitikus, mind empirikus kutatásokban. Egy korai, tervezésről és robotikáról szóló mesterséges intelligencia kutatás (a STRIPS) például egy építőkockákból álló világot használt, amelyben egy robotkar hajtott végre a kockák manipulálásával járó feladatokat. Ebben a feladatban egy egyszerű, jól meghatározott szabályoknak és megszorításoknak eleget tevő kockavilágot kell modellezned. Annak meghatározása helyett, hogy hogyan lehet elérni egy megadott állapotot, egy robotkart kell „programoznod” úgy, hogy korlátozott számú parancsot végrehajtson. A feladatod, hogy beolvass egy parancssorozatot, amely egy sík asztalon fekvő kockák mozgatását írja le. Kezdetben n kocka van az asztalon (0-tól n – 1-ig számozva), ahol a bi kocka szomszédos a bi + 1 kockával minden 0 ≤ i < n – 1 esetén, ahogy az alábbi ábrán látható:
A kezdeti kockavilág A kockákat manipuláló robotkar által értelmezett parancsok a következők:
Azok a parancsok, amelyekben a = b, vagy amelyekben a és b ugyanabban a kockatoronyban vannak, érvénytelen parancsok. Az érvénytelen parancsokat figyelmen kívül kell hagyni, semmilyen hatással nem lehetnek a kockák elhelyezkedésére. A bemenet specifikációjaA bemenet egy olyan sorral kezdődik, amelyben egy n egész szám, a kockavilágban található kockák száma szerepel. Feltételezheted, hogy 0 < n < 25.
A kockák számát soronként egy parancs követi. A programodnak minden parancsot fel kell
dolgoznia egészen addig, amíg a Feltételezheted, hogy minden parancs megfelel a fentebb leírt formátumnak. Nem lesznek szintaktikailag helytelen parancsok. A kimenet specifikációjaA kimenetre a kockavilág végső állapotát kell kiírni. Az összes eredeti kockapozíció i sorszámát meg kell jeleníteni (0 ≤ i < n), amelyet közvetlenül egy kettőspontnak kell követnie. Ha az adott pozíción van legalább egy kocka, a kettőspontot egy szóköznek, majd az adott pozíción felhalmozott kockák sorszámaiból álló listának kell követnie, a kockasorszámokat egymástól egy-egy szóközzel elválasztva. A sorok végén nem állhatnak szóközök! Minden kockapozícióhoz pontosan egy sort kell a kimenetre írni (azaz a kimenetnek összesen n sorból kell állnia). Példa bemenet
A példa bemenethez tartozó kimenet
|
|||||||||||
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30. |