Zoznam úloh

2. Ešte chvíľu a už to bude

Je sedem hodín ráno, v jednej ruke má rožok a v druhej je parižák. Ako poctivý zamestanec firmy Krásne Série Programujeme si predsa programátor Konco musí dopriať kvalitné raňajky. Koniec koncov sa hovorí, že ráno je múdrejšie večera. Toto si však zvyšní vedúci, ktorí sa nevolajú Konco, hovorili už veľa večerov, a teda séria stále nie je a nie je.

Vie to aj MisQo, a teda z megafónu zakričí: “Chalani, ešte u-už m-meškáme tak asi dvestotisíc r-rokov s t-tou hmmmm sériou, p-pohnite si do-p-pekla”.

Konco pozná MisQa už pomerne dlho, a preto ho veľmi neprekvapilo, že sa zakoktal. No ako správny študent informatky sa zamyslel. Keby sa MisQo optimálne zakoktal, aký lexikograficky najmenší reťazec vie docieliť?

Úloha

Dostanete na vstupe reťazce $S$ a $T$, kde $S$ je reťazec tvorený malými písmenami anglickej abecedy a reťazec $T$ je tvorený nulami a jednotkami. Oba reťazce majú dĺžku $n$. Písmeno $S_i$ môžeme najviac raz duplikovať (teda pridať tesne za neho rovnaké písmenko) práve vtedy, keď $T_i = 1$. Nazvime túto operáciu duplikácia. Aký lexikograficky najmenší reťazec môžeme pomocou tejto operácie vyrobiť z pôvodného reťazca $S$?

Poznámka: reťazec A je lexikograficky menší ako reťazec B práve vtedy, keď na prvej pozícii, kde sa A a B líšia, má reťazec A písmenko, ktoré sa nachádza skôr v abecede.
Príklad: “aaabc” je lexikograficky menší ako “aabb”, pretože sa líšia na tretej pozícii, a druhý reťazec tam má ‘b’, a prvý ‘a’.
Príklad 2: “a” je lexikograficky menší ako “aa”, pretože sa líšia na druhej pozícii, kde prvý reťazec má prázdny znak, ktorý berieme ako “nultý v abecede”.

Formát vstupu

V prvom riadku vstupu je číslo $n$ ($1 \leq n \leq 10^6$) udávajúce dĺžku reťazcov $S$ a $T$.

V druhom riadku dostanete reťazec $S$ tvorený malými písmenami anglickej abecedy.

V treťom riadku dostanete reťazec $T$ tvorený nulami a jednotkami.

V jednotlivých sadách platia nasledujúce obmedzenia:

Sada 1 2 3 4
$1 \leq n \leq$ $20$ $500$ $5\,000$ $10^6$

V druhej sade zároveň platí, že $T$ je tvorený najviac $20$ jednotkami.

Formát výstupu

Vypíš jeden riadok - lexikograficky najmenší reťazec dosiahnuteľný operáciou duplikácie, popísanej vyššie.

Príklady

Vstup

6
abedcx
111101

Výstup

aabbedcx

Vstup

8
aabacaba
11111111

Výstup

aaaabaacaaba
Pre odovzdávanie sa musíš prihlásiť.
Trojsten

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty