V Olimpiada Informatyczna 1997/98

Zadanie: BAN
Autor: Piotr Chrząstowski-Wachtel
Bankomaty

III ETAP, PIERWSZY DZIEŃ ZAWODÓW - WTOREK 7 KWIETNIA 1998 r.  
Plik źródłowy: BAN.??? (np. pas, c, cpp)
Plik wykonywalny: BAN.exe
Plik wejściowy: BAN.in
Plik wyjściowy: BAN.out

Każdy członek Bajtlandzkiej Kasy Pożyczkowej ma prawo pożyczyć dowolną sumę mniejszą niż 1030 Bajtlandzkich dukatów, ale musi ją w całości zwrócić do Kasy nie później niż po upływie 7 dni. W sali obsługi klientów Kasy ustawiono 100 bankomatów ponumerowanych od 0 do 99. Każdy bankomat wykonuje tylko jedną operację: wypłaca albo przyjmuje ustaloną kwotę. Bankomat o numerze i wypłaca 2i dukatów, jeśli i jest parzyste, zaś przyjmuje 2i dukatów, jeśli i jest nieparzyste. Gdy klient zamierza wypożyczyć ustaloną kwotę, trzeba zbadać, czy będzie mógł ją pobrać, korzystając co najwyżej raz z każdego z bankomatów i jeśli tak, wyznaczyć numery bankomatów, z których należy skorzystać. Trzeba również zbadać, czy będzie mógł ją zwrócić w podobny sposób i jeśli tak, wyznaczyć numery bankomatów, z których należy skorzystać w celu wykonania tej operacji.

Przykład

Klient, który zamierza pożyczyć 7 dukatów, pobiera najpierw 16 dukatów w bankomacie nr 4 i 1 dukata w bankomacie nr 0, a następnie oddaje 8 dukatów w bankomacie nr 3 i 2 dukaty w bankomacie nr 1. Żeby zwrócić pożyczoną kwotę 7 dukatów, pobiera najpierw 1 dukata w bankomacie numer 0, a następnie oddaje 8 dukatów w bankomacie nr 3.

Zadanie

Napisz program, który:

Wejście

W pierwszym wierszu pliku wejściowego BAN.IN znajduje się jedna liczba całkowita dodatnia n <= 1000. Jest to liczba klientów.
W każdym z kolejnych n wierszy jest jedna liczba całkowita dodatnia, mniejsza niż 10^30, zapisana za pomocą co najwyżej 30 cyfr dziesiętnych. Liczba w i-tym z tych wierszy, to wysokość kwoty, którą zamierza pożyczyć klient nr i .

Wyjście

W każdym z 2n kolejnych wierszy pliku wyjściowego BAN.OUT należy zapisać malejący ciąg liczb całkowitych dodatnich z zakresu [0..99] oddzielonych pojedynczym odstępem albo jedno słowo NIE:

Przykład

Dla pliku tekstowego BAN.IN:

2
7
633825300114114700748351602698

poprawnym rozwiązaniem jest plik wyjściowy BAN.OUT:
4 3 1 0
3 0
NIE
99 3 1
Twój program powinien szukać pliku BAN.IN w katalogu bieżącym i tworzyć plik BAN.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę BAN.??? 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 BAN.EXE.