시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB17415312792.701%

문제

Att vikingarna var duktiga krigare känner nog de flesta till, men att de också hade bra programmerare är mindre välkänt. Att programmera en runsten krävde mycket tid och lämnade inte mycket rum för misstag. Detta gjorde tyvärr även runstenarna extra sårbara för vikingahackare, som härjade fritt.

Du har fått i uppdrag att översätta en runsten från den här tiden med hjälp av ett uppslagsverk av tecken och dess binära representation (vikingarna saknade högnivåspråk och kodade direkt i ettor och nollor). Eftersom de flesta runstenar till slut blev hackade så finns det dock risk att vissa delar av koden är fel.

입력

På första raden står ett tal $T$ ($1 \le T \le 16$), antalet tecken i alfabetet.

Därefter följer $T$ rader bestående av ett tecken (små och stora bokstäver mellan a-z samt siffror kan förekomma) följt av tecknets binära representation (en sekvens av ettor och nollor som alltid är av längd 4). Till sist följer en sträng av $N$ ($1 \leq N \leq 4\,000)$ stycken ettor och nollor, runstenen som ska översättas. Det är garanterat att $N$ är delbar med $4$ och att det inte finns två olika tecken med samma binära representation i indata.

출력

Skriv ut en rad med $N$ tecken, översättningen av runstenen. För de tecken som inte kunde översättas korrekt ska istället ett "?" skrivas ut.

예제 입력 1

2
a 0100
b 1000
0100100000101000

예제 출력 1

ab?b

예제 입력 2

6
2 0101
P 1101
1 1010
4 1011
O 1110
0 0010
110111110101010010101011

예제 출력 2

P?2?14

힌트

Vi får reda på att 0100 ska översättas till a, och att 1000 ska översättas till b. Strängen som ska översättas är 0100100000101000, vilket kan delas upp i tecknen 0100, 1000, 0010 och 1000. Det tredje tecknet är det enda som inte kan översättas, vilket ger utdatan ab?b.

출처

Olympiad > Swedish Olympiad in Informatics > 2014 > Online Qualification B번

  • 문제를 만든 사람: Erik Odenman