вход
Неотрицательное целое число n
и непустая строка, s
содержащая только буквенно-цифровые символы и подчеркивания _
. Первый персонаж s
не является _
. Подчеркивания s
интерпретируются как пробелы, которые могут быть заполнены другими символами.
Определим бесконечную последовательность «бесконечных строк» следующим образом. Строка просто повторяется бесконечно много раз. Для всех строка получается путем заполнения ее пробелов символами , так что первое из заменяется на , второе - и так далее. Поскольку первая буква - нет , каждое пустое пространство в конце концов заполняется, и мы обозначаем бесконечную строку, где каждая была заменена ее конечным значением.s1 = s s s...
s
k > 1
sk+1
sk
s1
_
sk
s1[0]
s1[1]
s
_
s∞
_
Выход
Первые n
символы в виде строки.s∞
пример
Рассмотрим входы n = 30
и s = ab_c_
. У нас есть
s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_...
Подставляя пробелы , мы имеемs1
s1
s2 = abacbab_ccab_caabbc_abcc_abacbab_cc...
Мы снова заменяем пробелы, что приводит кs1
s3 = abacbabaccabbcaabbc_abcccabacbab_cc...
Еще одна замена:
s4 = abacbabaccabbcaabbcaabcccabacbabbcc...
Из этого мы уже можем вывести первые 30 символов , которыеs∞
abacbabaccabbcaabbcaabcccabacb
Это правильный вывод.
правила
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены. Сбой при неправильном вводе допустим.
Тестовые случаи
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"