Цей виклик є першим у серії із двох викликів про повторення. Незабаром буде другий.
У мові під назвою Повторення (те, що я щойно склав) складається нескінченна струна 12345678901234567890...
з 1234567890
повторенням назавжди.
Для виведення чисел доступний наступний синтаксис:
+-*/
: Це вставляє оператора в рядок повторюваних цифр.- Приклади:
+
->1+2
=3
(+
Вставляє+
між1
і2
)+*
->1+2*3
=1+6
=7
(Те саме, що вище, за винятком того, що зараз використовуються два оператори)/
->1/2
=0
(Для повторення використовується ціле ділення)//
->1/2/3
=0/3
=0
(Для повторення використовується "ліва асоціація" з декількома відніманнями та діленнями)
- Кожен оператор вставляється таким чином, щоб він мав одну цифру ліворуч, якщо їх немає
c
(див. Нижче).
- Приклади:
c
: З'єднується з наступною цифрою у рядку.- Приклади:
c+
->12+3
=15
(c
"Продовжує"1
і з'єднує його з наступною цифрою ,,2
щоб утворити12
)+c
->1+23
=24
ccc
->1234
- Приклади:
()
: Дужки для обробки чисел.- Приклади:
(c+)*
->(12+3)*4
=15*4
=60
(Повторення використовує порядок операцій)(c+)/c
->(12+3)/45
=15/45
=0
(cc+c)/
->(123+45)/6
=168/6
=28
- Приклади:
s
: Пропустити число (видаляє число з нескінченного рядка).s+
->2+3
=5
(s
пропускає1
)csc
->124
(Першіc
конмати1
та2
,s
пропуски3
та заключніc
конмати12
до4
)+s+
->7
(Перший+
додає1
і2
зробити3
,s
скаче3
, а остаточний+
додає3
до4
робити7
)cs*(++)
->12*(4+5+6)
=12*15
=180
У наведених вище прикладах використовується лише обмежена кількість цифр у нескінченному рядку. Кількість використаних цифр еквівалентна number of operators, concats and skips + 1
.
Ваше завдання полягає в тому, що вам надається рядок коду повторення, виведіть результат.
Прикладами введення та виведення є:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
Це код гольфу, тому найкоротший код у байтах виграє!
Технічні характеристики:
- Вам гарантовано, що результат ніколи не буде вище
2^31-1
. - Ви також гарантуєте, що вхід буде складатися лише з символів
+-*/cs()
. - Порожня програма виведе
1
.
s+
це в 2+3
якості першого прикладу. І все ще s
мене клопоче. Цікаво, як +s()+
розширюється. Якщо це 1+(2)+4
тоді (
приходить раніше, 2
але те, s
що приходить навіть до того, як, (
здавалося б, все ще пропускає 3
, ні 2
. Якщо результат є, 1+(3)+4
то ефект s
залежить від того, що буде після нього (порівняйте +s+
)
sc
є 23
і s+
є 1+3
? Є чи s
пропустити в 1
даний час або 2
? Усі приклади використовують першу операцію на операндах 1
і 2
... так sc
має бути 13
.
~
s? Не залишайте нас повішеними.