Contribution
Un entier non négatif n
et une chaîne non vide s
contenant uniquement des caractères alphanumériques et des traits de soulignement _
. Le premier caractère de s
n'est pas _
. Les traits de soulignement de s
sont interprétés comme des espaces vides qui peuvent être remplis avec d'autres caractères.
Nous définissons une séquence infinie de "chaînes infinies" comme suit. La chaîne est juste répétée infiniment de fois. Pour tous , la chaîne est obtenue en remplissant ses espaces vides avec les caractères de , de sorte que le premier de soit remplacé par , le second de , etc. Puisque la première lettre de n'est pas , chaque espace vide est finalement rempli, et nous désignons la chaîne infinie où chacun a été remplacé par sa valeur éventuelle.s1 = s s s...
s
k > 1
sk+1
sk
s1
_
sk
s1[0]
s1[1]
s
_
s∞
_
Production
Les premiers n
caractères d' une chaîne.s∞
Exemple
Considérez les entrées n = 30
et s = ab_c_
. Nous avons
s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_...
Remplaçant les blancs de , nous avonss1
s1
s2 = abacbab_ccab_caabbc_abcc_abacbab_cc...
Nous remplaçons à nouveau les blancs, ce qui se traduit pars1
s3 = abacbabaccabbcaabbc_abcccabacbab_cc...
Encore une substitution:
s4 = abacbabaccabbcaabbcaabcccabacbabbcc...
On peut déjà en déduire les 30 premiers caractères de , qui sonts∞
abacbabaccabbcaabbcaabcccabacb
Ceci est la sortie correcte.
Règles
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas gagne et les failles standard sont interdites. Un plantage sur une entrée incorrecte est acceptable.
Cas de test
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"