Фон
Програмісти LISP захопили світ! Дужки були оголошені священними символами, і відтепер вони можуть використовуватися лише в програмах LISP. Було вирішено, що дужки в літературних творах будуть замінені виносками, і ваше завдання автоматизувати це для спрощеного тексту Маркдаун.
Вхідні дані
Ваш вхід - це одна рядок, що містить алфавітні символи, пробіли та спеціальні символи ASCII ,.!?()
. Він не буде містити нових рядків або цифр. Круглі дужки будуть правильно підібрані.
Вихід
Ви повинні перетворити кожну збірну пару круглих дужок у вхідному рядку у виноску. Це відбувається так:
- Замініть першу відповідну пару круглих дужок і підрядку між ними на запущене число, яке починається з
1
, загорнутий між тегами Markdown<sup>
і</sup>
. - Додайте до кінця рядка
- два нових рядки,
- тег Markdown
<sub>
, - число від кроку 1,
- простір,
- підрядок між дужками та
</sub>
в цьому порядку закриваючий тег .
- Якщо в рядку залишилися дужки, перейдіть до кроку 1.
Ваш вихід - це результат-рядок, можливо, з наступним рядком. Вам не доведеться реалізовувати цей точний алгоритм, якщо ваш результат правильний. Зауважте, що можуть бути вкладені дужки; у такому випадку у нас будуть виноски, які містять посилання на інші виноски. Підрядок між дужками також може бути порожнім. Дивіться приклади тестів нижче для прикладів.
Правила та підрахунок балів
Ви можете написати або повну програму, або функцію. Виграє найменший кількість байтів, а стандартні лазівки заборонені.
Якщо ваша мова не підтримує десяткові числа ( кашель сітківки кашлю ), ви можете вказати нотатки виноски в іншій базі, включаючи двійкові чи одинарні; однак за використання одинакових цифр накладається штраф у розмірі + 20% .
Випробування
Вхід:
This input contains no parentheses.
Вихід:
This input contains no parentheses.
Вхід:
This has (some) parentheses (but not so many).
Вихід:
This has <sup>1</sup> parentheses <sup>2</sup>.
<sub>1 some</sub>
<sub>2 but not so many</sub>
Вхід:
This has (nested (deeply (or highly?) nested)) parentheses (and several groups).
Вихід:
This has <sup>1</sup> parentheses <sup>2</sup>.
<sub>1 nested <sup>3</sup></sub>
<sub>2 and several groups</sub>
<sub>3 deeply <sup>4</sup> nested</sub>
<sub>4 or highly?</sub>
Вхід:
Hmm()(()(,)) a()((trt)(v( (((((wut)))))(X)(Y)(Z) )!?!?!?!))oooooooo(oooo)oooo
Вихід:
Hmm<sup>1</sup><sup>2</sup> a<sup>3</sup><sup>4</sup>oooooooo<sup>5</sup>oooo
<sub>1 </sub>
<sub>2 <sup>6</sup><sup>7</sup></sub>
<sub>3 </sub>
<sub>4 <sup>8</sup><sup>9</sup></sub>
<sub>5 oooo</sub>
<sub>6 </sub>
<sub>7 ,</sub>
<sub>8 trt</sub>
<sub>9 v<sup>10</sup>!?!?!?!</sub>
<sub>10 <sup>11</sup><sup>12</sup><sup>13</sup><sup>14</sup> </sub>
<sub>11 <sup>15</sup></sub>
<sub>12 X</sub>
<sub>13 Y</sub>
<sub>14 Z</sub>
<sub>15 <sup>16</sup></sub>
<sub>16 <sup>17</sup></sub>
<sub>17 <sup>18</sup></sub>
<sub>18 wut</sub>
Помітьте порожні рядки між виносками.
foo (bar)\nfoot (note)
?