Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_03_09 - Planeta Bitbit |
Na planecie Bitbit zbliżają się wielkimi krokami Święta Bożego Narodzenia. Święty Mikołaj w tym czasie ma bardzo dużo pracy - więcej niż na Ziemi. Musi rozdać prezenty mając nie do końca przetworzone dane osobowe. Listy prezentów od mieszkańców zawierają tylko informacje o ich przodkach oraz ich numerze porządkowym w swoim pokoleniu. Mikołaj zna natomiast imiona grzecznych i niegrzecznych stworzątek tej fascynującej planety. Pomóż świętemu Mikołajowi (zasłużysz wtedy na wymarzony prezent) i napisz program, który odkoduje nadesłane listy, żeby Mikołaj prawidłowo rozdał prezenty i zdążył na czas wrócić na Ziemię.
Bitjaninowie rozmnażają się w specyficzny sposób. W danym pokoleniu, każdy osobnik posiada taką samą ilość potomków. I-te pokolenie nie zawsze ma taką samą ilość potomków jak j-te pokolenie. Jest to cecha charakterystyczna tylko na tej planecie. Warto zauważyć, że alfabet jaki tam obowiązuje składa się z małych liter języka angielskiego (wiem, że to dziwne, ale tak jest). Żyjątka planety Bitbit przyjmują imiona według pewnego schematu. Każdy potomek dziedziczy imię po swoim przodku i dodatkowo dołączany jest do tego imienia część charakteryzująca tego osobnika w danym pokoleniu według zasady:
załóżmy, że ponumerowaliśmy osobniki w danym pokoleniu od 1 do n (kolejno osobniki od pierwszego ojca, następnie od drugiego itd.). Żyjątko pierwsze ma na imię: imię przodka + litera a, żyjątko drugie imię przodka + litera b itd.. Gdy skończą się pojedyncze litery, zaczynamy dodawać następne tak jak w arkuszu kalkulacyjnym EXCEL definiowane są kolumny.
Dla danego zapytania składającego się z numeru pokolenia oraz numeru osobnika w tym pokoleniu, podaj jego imię.
Uwaga!! W zerowym pokoleniu jest jeden osobnik o imieniu a.
Input
W pierwszej linii znajduje się liczba p określająca ilość pokoleń (0 < p <= 10)
W drugiej linii p liczb naturalnych pi określających ilość potomków dla danego pokolenia (0 < pi <= 10)
Następnie jedna liczba q wyznaczająca liczbę zapytań (q <= 100000).
Każde zapytanie składa się z dwóch liczb k i nr, gdzie k to numer pokolenia 0 < k <= p oraz nr to numer osobnika w danym pokoleniu.
Output
Dla każdego zapytania imię danego osobnika.
Example
Input: 4 2 3 3 2 5 1 1 3 9 4 25 4 26 4 30 Output: aa aaci abemy abemz abeoad
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2012-12-13 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |