IV Olimpiada Informatyczna 1996/97
|
Zadanie: ALI
|
Autor: Piotr Chrząstowski-Wachtel
|
Zawody III stopnia |
Plik źródłowy: | ALI.??? (np. pas, c, cpp) |
Plik wykonywalny: | ALI.exe |
Plik wejściowy: | ALI.in |
Plik wyjściowy: | ALI.out |
Aby otworzyć Sezam, trzeba mieć komplet co najmniej z żetonów złotych, s srebrnych i m miedzianych.
Alibaba ma początkowo pewną liczbą żetonów każdego rodzaju i może je wymieniać u strażnika Sezamu według ściśle określonych reguł.
Każda reguła jest postaci:
z1, s1, m1 -> z2, s2, m2 (zi, si, mi należą do {0,1,2,3,4})
gdzie: z1, s1, m1 oznaczają odpowiednio liczby żetonów złotych, srebrnych i miedzianych, jakie Alibaba musi dać strażnikowi, zaś z2, s2, m2 - liczby żetonów złotych, srebrnych i miedzianych, które otrzyma w wyniku transakcji wymiany.
Żetony otrzymane w wyniku transakcji można wymieniać w kolejnych transakcjach.
Dalej są zapisane kolejno zestawy danych. Każdy zestaw danych składa się z wielu wierszy.
W pierwszym wierszu są zapisane trzy liczby całkowite nieujemne zp, sp, mp należące do {0,1,2,3,4}. Są to liczby żetonów złotych, srebrnych i miedzianych, jakie na początku ma Alibaba.
W drugim wierszu są kolejne trzy liczby całkowite z, s, m należące do {0,1,2,3,4}. Są to liczby żetonów złotych, srebrnych i miedzianych, jakie trzeba mieć, aby otworzyć Sezam.
W trzecim wierszu jest zapisana liczba reguł r, gdzie 1<=r<=10.
W każdym z kolejnych r wierszy jest zapisany ciąg sześciu liczb z1, s1, m1, z2, s2, m2 należących do {0,1,2,3,4}. Każda taka szóstka liczb jest zapisem jednej reguły transakcji: z1, s1, m1 -> z2, s2, m2.
Liczby w każdym wierszu są pooddzielane pojedynczymi odstępami.
Przykład
Dla pliku tekstowego ALI.IN:
2 2 2 2 3 3 3 3 0 1 1 2 0 0 1 0 1 0 2 0 1 1 0 0 0 2 1 1 1 2 2 2 4 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 2 0 0 0 2 2poprawnym rozwiązaniem jest plik tekstowy ALI.OUT:
NIE 9
Twój program powinien szukać pliku ALI.IN w katalogu bieżącym i tworzyć plik ALI.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę ALI.???, 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 ALI.EXE.