IV Olimpiada Informatyczna 1996/97

Zadanie: GEN
Autor: Przemysława Kanarek
GENOTYPY

Zawody II stopnia  
Plik źródłowy: GEN.??? (np. pas, c, cpp)
Plik wykonywalny: GEN.exe
Plik wejściowy: GEN.in
Plik wyjściowy: GEN.out

Genotypy są skończonymi łańcuchami genów. Opisujemy je za pomocą słów utworzonych z wielkich liter alfabetu angielskiego A - Z. Różne litery oznaczają różne rodzaje genów. Gen może pączkować - zmieniając się w dwójkę nowych genów. Tymi przemianami rządzi skończony zbiór reguł. Każdą regułę pączkowania można zapisać w postaci trójki wielkich liter A1A2A3 co oznacza, że gen A1 może się zmienić w dwójkę genów A2A3.

Wielką literą S oznaczamy specjalny rodzaj genów zwanych supergenami. Hodowla genotypu rozpoczyna się od łańcucha supergenów i polega na sterowanym pączkowaniu wybranych genów zgodnie z ustalonymi regułami.

Zadanie

Napisz program, który:

Wejście

W pierwszym wierszu pliku tekstowego GEN.IN jest zapisana jedna liczba całkowita 1 <= n <= 10000. W każdym z n kolejnych wierszy jest zapisana jedna reguła pączkowania, w postaci słowa złożonego z trzech wielkich liter A - Z.

W następnym wierszu jest zapisana jedna liczba całkowita 1 <= k <= 10000. W każdym z k kolejnych wierszy jest zapisany jeden genotyp w postaci niepustego słowa złożonego z co najwyżej 100 liter A - Z.

Wyjście

W i-tym z kolejnych k wierszy pliku tekstowego GEN.OUT należy zapisać:

Przykład

Dla pliku GEN.IN:
6
SAB
SBC
SAA
ACA
BCC
CBC
3
ABBCAAABCA
CCC
BA
poprawnym rozwiązaniem jest plik GEN.OUT:
3
1
NIE

Twój program powinien szukać pliku GEN.IN w katalogu bieżącym i tworzyć plik GEN.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę GEN.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku GEN.EXE.