Вхідні дані
Невід’ємне ціле число 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"