Entrada
Um número inteiro não negativo n
e uma sequência não vazia s
contendo apenas caracteres alfanuméricos e sublinhados _
. O primeiro caractere de s
não é _
. Os sublinhados de s
são interpretados como espaços em branco que podem ser preenchidos com outros caracteres.
Definimos uma sequência infinita de "seqüências infinitas" da seguinte maneira. A corda é repetida apenas infinitamente várias vezes. Para todos , a string é obtida preenchendo seus espaços em branco com os caracteres de , para que o primeiro de seja substituído por , o segundo de , e assim por diante. Como a primeira letra de não é , todo espaço em branco é preenchido eventualmente, e nós denotamos pela cadeia infinita em que todos foram substituídos por seu valor final.s1 = s s s...
s
k > 1
sk+1
sk
s1
_
sk
s1[0]
s1[1]
s
_
s∞
_
Resultado
Os primeiros n
caracteres de como uma sequência.s∞
Exemplo
Considere as entradas n = 30
e s = ab_c_
. Nós temos
s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_...
Substituindo os espaços em branco de , temoss1
s1
s2 = abacbab_ccab_caabbc_abcc_abacbab_cc...
Substituímos novamente os espaços em branco, o que resulta ems1
s3 = abacbabaccabbcaabbc_abcccabacbab_cc...
Mais uma substituição:
s4 = abacbabaccabbcaabbcaabcccabacbabbcc...
A partir disso, já podemos deduzir os 30 primeiros caracteres , que sãos∞
abacbabaccabbcaabbcaabcccabacb
Esta é a saída correta.
Regras
Você pode escrever um programa completo ou uma função. A contagem de bytes mais baixa vence e as brechas padrão não são permitidas. Falha na entrada incorreta é aceitável.
Casos de teste
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"