Programozás‎ > ‎Feladatok‎ > ‎

Szójáték

A Cserebere logikai szójátékot egy szótár alapján játszhatjuk. A játék alapja: egy kiinduló szóból egy szósorozatot kell előállítani, amely csak a szótárban lévő szavakból állhat, s a sorozat egymást követő szavai egy elemi átalakítással kaphatók az őket megelőző szóból. Kétféle szabály alkalmazható átalakításra:
  • A. szabály: egy betű kicserélése egy másikra
  • B. szabály: egy betű kicserélése egy másikra vagy egy betű írása a szó végére.

Feladat

Készíts programot, amely a képernyőre és a JATEK.KI állományba írja soronként a kimenetnél leírtakat.

Bemenet

A SZOTAR.BE állomány első sorában a szótár szavainak száma (1<=N<=1000), a további N sorban pedig egy-egy, a szótárban szereplő szó van. A szavak legfeljebb 20 karakterből állnak. A JATEK.BE állomány első sorában az alkalmazandó szabály betűjele (A vagy B), a második és harmadik sorában pedig két különböző, a szótárban szereplő szó (P és Q) van.

Kimenet

Az első sorba az IGEN szó kerüljön, ha a P szóból előállítható a Q szó a megadott szabály szerinti szósorozat előállítással, egyébként a NEM szót kell írni. Ha előállítható, akkor az IGEN szótól egy szóközzel elválasztva szerepeljen a legkisebb szabályalkalmazás szám, amivel a Q a P-ből előállítható.
A második sorba a P szóból a szabály szerint (nem feltétlenül egyetlen sorozatban) előállítható összes szót kell írni.

Példa

Bemenet szotar.be és jatek.be  Kimenet
7 OKOS ÁKOS ÁKOM OKOD ÁLOM ALOM HALOM A OKOS ÁLOM IGEN 3 OKOS ÁKOS ÁKOM ÁLOM ALOM OKOD

Tesztadatok

Címkék

A feladat forrása: NTOITV 1999, 9-10. évfolyam, 2. forduló
Algoritmusok: szélességi bejárás

megoldás