SIO Anonymous
wydruk ps pdf

Liczby Przesmyków (lic)

W zamierzchłych czasach żyło plemię Przesmyków. Byli to wybitni, jak na owe czasy, znawcy liczb. Do ich zapisu używali jedynie dwóch symboli, "+" i "-", których rytualne znaczenie jest wciąż badane przez historyków. Wiadomo, że Przesmycy umieli zapisywać wszystkie liczby naturalne 0, 1, 2, ... Do zapisu liczb używali ciągów znaków "+" i "-", przy czym niektóre takie ciągi nie były wykorzystywane z przyczyn religijnych. Co roku kapłani ogłaszali, ile maksymalnie z rzędu znaków "-" może wystąpić w zapisach liczb. W zależności od roku ograniczenie to wynosiło od 1 do 113. Sposób zapisu liczb ustalano w następujący sposób: Wszystkie poprawne ciągi znaków "+" i "-" były ustawiane w kolejności od krótszych do dłuższych, a ciągi tej samej długości w porządku alfabetycznym (takim, jak w słowniku, przy czym "-" poprzedzał "+"). Tak uporządkowane ciągi reprezentowały kolejno liczby 0, 1, 2, ... Przykładowo, jeżeli nie można było używać więcej niż jednego znaku "-" z rzędu, to zapis liczb wyglądał następująco:

0-
1+
2-+
3+-
4++
5-+-
6-++
7+-+
8++-
9+++
10-+-+
11-++-
...

Wraz ze zmianą ograniczenia zmieniał się zapis liczb. Na przykład, gdy można było używać dwóch lub więcej znaków "-" z rzędu, liczba 2 była zapisywana jako "--". Przysparza to dużo problemów współczesnym historykom.

Zadanie

Napisz program, który:

  • wczyta dwa ograniczenia na maksymalna liczbę znaków "-" z rzędu, które mogą pojawiać się w zapisach liczb, oraz zestaw liczb w zapisie Przesmyków dla pierwszego ograniczenia,
  • przetłumaczy te liczby na zapis Przesmyków dla drugiego ograniczenia,
  • wypisze liczby w nowym zapisie.

Wejście

W pierwszym wierszu standardowego wejścia zapisane są trzy dodatnie liczby całkowite m1, m2 i n, oddzielone pojedynczymi odstępami, 1 <= m1,m2 <= 113, 1 <= n <= 10. Liczba m1 to ograniczenie na maksymalną liczbę znaków "-" z rzędu, które mogą pojawiać się w zapisach liczb w danych wejściowych. Liczba m2 to ograniczenie na maksymalną liczbę znaków "-" z rzędu, które mogą pojawiać się w wypisywanych liczbach. Liczba n to liczba zapisów liczb, które należy przekształcić. W kolejnych n wierszach znajduje się n zapisów liczb, po jednym w wierszu. Każdy z tych zapisów nie przekracza 1000 znaków.

Wyjście

Twój program powinien pisać na standardowe wyjście. Powinien on wypisać w kolejnych wierszach kolejne liczby z danych wejściowych przetłumaczone na zapis Przesmyków przy ograniczeniu m2 na maksymalną liczbę znaków "-" z rzędu.

Przykład

Dla danych wejściowych:

1 2 3
-+-
-+
+-+

poprawnym wynikiem jest:

++
--
-+-

Nazwa pliku źródłowego: lic.XXX, gdzie XXX to c dla C, cpp dla C++, pas dla Pascala.
SIO, 2019-08-19 21:15:59