Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
LIBRARY - Biblioteka - Wyszukiwanie kodów |
W pewnym mieście mieszka, znana ze swej zaradności, bibliotekarka Kasia. W jej bibliotece wszystkie książki oznaczono kodami, a jej przyjaciel Wojtek napisał program, który ułatwiał jej pracę.
Wszystko byłoby dobrze, gdyby nie dar pewnego filantropa, który postanowił przekazać Kasi ogromny zbiór książek. Problem polega na tym, że kody naklejone na niektórych nowych książkach są o jeden znak dłuższe, a algorytm Wojtka jest stanowczo zbyt wolny dla takiej ilości pozycji.
Napisz dla Kasi program, który pozwoli szybko stwierdzać (po podaniu kodu), czy dana pozycja znajduje się w bibliotece, i jeżeli tak to w jakiej ilości.
Wejście
Dane podane są na standardowe wejście. W pierwszym wierszu podane są dwie liczby całkowite n (0 < n < 400001) i k (0 < k < 200001), oznaczające kolejno ilość pozycji w bibliotece Kasi i ilość zapytań, na które odpowiedzieć ma Twój program.
W następnych n wierszach znajdują się kody* oddzielone znakami nowej linii, odpowiadające pozycjom w bibliotece Kasi. Kody mogą się powtarzać.
W kolejnych k wierszach znajdują się zapytania - kody, których obecność w bibliotece ma stwierdzić Twój program.
*kod - sześcio lub siedmio-elementowy ciąg znaków (33-125 ASCII).
Wyjście
Wyniki programu powinny być wypisywane na standardowe wyjście. Należy wypisać k wierszy. W i-tym wierszu powinno się znaleźć słowo "BRAK", jeżeli kod będący i-tym zapytaniem nie widnieje w spisie bibliotecznym. W przeciwnym wypadku należy wypisać liczbę wystąpień tego kodu w spisie.
Przykład
Wejście:
6 5 :2vutK f460B_< :2vutK ^pG[^@ MYdCOZ %B$:QCv :2vutK 0<Ohwl? f460B_< t\Wv!X1 ):qG):d
Wyjście:
2 BRAK 1 BRAK BRAK
dsadasdasda
Dodane przez: | Jakub Pierewoj |
Data dodania: | 2011-06-30 |
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: GOSU |