POLSKI SPOJ

Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

Zadanie w systemie SPOJ (srednie)

1088. Letnie promocje

Kod zadania: ETI07E8

Jaś i Staś, jak co dzień w czasie wakacji, spacerują brzegiem morza. Po drodze Staś dostrzegł reklamę nowego modelu telefonu komórkowego, który w swoim słowniku może przechować nawet do 100000 wyrazów. Podczas pisania krótkich wiadomości tekstowych istotny jest sposób przechowywania wyrazów w słowniku oraz odgadywanie ich na podstawie wciśniętych klawiszy numerycznych. W klasycznej klawiaturze telefonu komórkowego cyfrom 2-9 odpowiadają następujące litery alfabetu: 2 (abc), 3 (def), 4 (ghi), 5 (jkl), 6 (mno), 7 (pqrs), 8 (tuv), 9 (wxyz). W ten sposób, na przykład liczbie 25 odpowiada 9 dwuliterowych wyrazów: aj, ak, al, bj, bk, bl, cj, ck, cl, liczbie 438 odpowiada 27 trzyliterowych wyrazów, a liczbie 5378 odpowiada 108 wyrazów czteroliterowych.. Słownik jednakże nie zawiera wszystkich w ten sposób utworzonych wyrazów (zawiera tylko pewien podzbiór). Załóżmy, że w telefonie komórkowym z klasyczną klawiaturą został zainstalowany słownik składający się z wyrazów utworzonych z małych liter alfabetu łacińskiego o długości od 1 do 15 znaków. Dla podanej liczby, składającej się z co najwyżej 15 cyfr, należy wypisać wszystkie wyrazy występujące w słowniku odpowiadające tej liczbie.

Wejście

W pierwszym wierszu podana jest liczba n (n <= 100000) wyrazów w słowniku oraz ilość k (k <= 1000000) liczb, dla których będziemy szukać wyrazów. W kolejnych n wierszach podane zostały wyrazy słownika, a w następnych k wierszach liczby składające się z cyfr ze zbioru {2,3,4,5,6,7,8,9}.

Wyjście

W każdym z k wierszy należy wypisać w porządku alfabetycznym wszystkie wyrazy słownika odpowiadające liczbie lub napis BRAK, jeżeli takich słów nie ma w słowniku.

Przykłady

Zestaw przykładowy 1

Wejście:
3 2
aj
oj
ck
25
73

Wyjście:
aj ck
BRAK

Zestaw przykładowy 2

Wejście:
6 3
ala
aka
kot
kolor
lokos
lotos
252
272
56567

Wyjście:
aka ala
BRAK
kolor lokos

Dodane przez:Michał Małafiejski
Data dodania:2006-11-15
Limit czasu wykonania programu:1s-45s
Limit długości kodu źródłowego50000B
Języki programowania:All except: AWK C++ 4.3.2 CLOJ ERL F# GO JS PERL 6 PYTH 3.1.2 SCALA SED TCL

ukryj komentarze
2011-07-12 16:25:34 Marek Michał Mazur
Czekam z niecierpliwością na procesory 128 bit oraz uint128_t, które pozwolą mi na ładne wykorzystanie zwykłej listy do przetrzymywania kluczy i wartości oraz uzyskanie jeszcze mniejszego czasu...
2010-08-14 16:22:17 Michał Janiec
O ile się nie mylę to nie ma powtórzeń.
2010-02-08 16:58:26 Piotr Kąkol
Hmm. No ja bym wypisał 6 razy "ala", jeśli zamiast 23 byłoby 252. No ale nie mam maxa, więc lepiej się spytaj na pl.spoj.pl/forum .
2010-02-08 13:04:30 Łukasz L.
ale mi bardziej chodzilo o 6krotne powtorzenie sie slowa 'ala' i co z czyms takim zrobic ?
2010-02-06 10:46:20 Piotr Kąkol
@Łukasz L. - 'n' i 'k' są większe od zera (sprawdziłem). Co do drugiego przypadku, to wypisz:
BRAK
BRAK
BRAK
2010-02-03 23:23:06 Łukasz L.
ja mam pytanie...co zrobic z czyms takim ?

********
0 0

********
6 3
ala
ala
ala
ala
ala
ala
23
23
23
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.