powrót

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łowyBAN.??? (np. PAS,C, CPP)
Plik wykonywalnyBAN.EXE
Plik wejściowyBAN.IN
Plik wyjściowyBAN.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.



powrót