Entrada
Un entero no negativo n
y una cadena no vacía que s
contiene solo caracteres alfanuméricos y guiones bajos _
. El primer personaje de s
no es _
. Los guiones bajos de s
se interpretan como espacios en blanco que se pueden rellenar con otros caracteres.
Definimos una secuencia infinita de "cadenas infinitas" de la siguiente manera. La cadena se repite infinitamente muchas veces. Para todos , la cadena se obtiene al llenar sus espacios en blanco con los caracteres de , de modo que el primero de se reemplaza con , el segundo con , y así sucesivamente. Desde la primera carta des1 = s s s...
s
k > 1
sk+1
sk
s1
_
sk
s1[0]
s1[1]
s
no es _
, cada espacio en blanco se llena eventualmente, y denotamos por la cadena infinita donde cada uno ha sido reemplazado por su valor final.s∞
_
Salida
El primero n
caracteres de como una cadena.s∞
Ejemplo
Considere las entradas n = 30
y s = ab_c_
. Tenemos
s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_...
Sustituyendo a los espacios en blanco de , tenemoss1
s1
s2 = abacbab_ccab_caabbc_abcc_abacbab_cc...
Nuevamente sustituimos a los espacios en blanco, lo que resulta ens1
s3 = abacbabaccabbcaabbc_abcccabacbab_cc...
Una sustitución más:
s4 = abacbabaccabbcaabbcaabcccabacbabbcc...
De esto ya podemos deducir los primeros 30 caracteres de , que sons∞
abacbabaccabbcaabbcaabcccabacb
Esta es la salida correcta.
Reglas
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten. Fallar en una entrada incorrecta es aceptable.
Casos de prueba
0 "ab__" -> ""
1 "ab__" -> "a"
3 "ab__" -> "aba"
20 "ab" -> "abababababababababab"
20 "ab__" -> "abababababababababab"
20 "ab_" -> "abaabbabaabaabbabbab"
30 "ab_c_" -> "abacbabaccabbcaabbcaabcccabacb"
50 "ab_a_cc" -> "abaabccabaaaccabbacccabcaaccabbaaccabaaaccabcaccca"
50 "abc____" -> "abcabcaabcbcaaabcbcbcabcaaababccbcbabccabcabcaaaba"