Цей виклик є першим у серії із двох викликів про повторення. Незабаром буде другий.
У мові під назвою Повторення (те, що я щойно склав) складається нескінченна струна 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=24ccc->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? Не залишайте нас повішеними.