Entrada
Un entero no negativo ny una cadena no vacía que scontiene solo caracteres alfanuméricos y guiones bajos _. El primer personaje de sno es _. Los guiones bajos de sse 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...sk > 1sk+1sks1_sks1[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 = 30y 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 , tenemoss1s1
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"