Latar Belakang
Programmer LISP telah mengambil alih dunia! Tanda kurung telah dinyatakan sebagai karakter sakral, dan mulai sekarang, tanda kurung hanya dapat digunakan dalam program LISP. Telah diputuskan bahwa tanda kurung dalam karya sastra akan digantikan oleh catatan kaki, dan tugas Anda adalah mengotomatiskan ini untuk teks Markdown yang disederhanakan.
Memasukkan
Input Anda adalah string tunggal yang berisi karakter ASCII alfabet, spasi, dan karakter khusus ,.!?()
. Itu tidak akan mengandung baris atau digit baru. Tanda kurung akan dicocokkan dengan benar.
Keluaran
Anda harus mengubah setiap pasangan tanda kurung yang cocok di string input menjadi catatan kaki. Ini terjadi sebagai berikut:
- Ganti pasangan kurung yang cocok pertama dan substring di antara mereka dengan nomor berjalan yang dimulai dari
1
, dibungkus antara tag Penurunan harga<sup>
dan</sup>
. - Tambahkan ke akhir string
- dua baris baru,
- tag penurunan harga
<sub>
, - nomor dari langkah 1,
- sebuah ruang,
- substring di antara tanda kurung, dan
- tag penutup
</sub>
, dalam urutan ini.
- Jika masih ada tanda kurung di dalam string, lanjutkan ke langkah 1.
Output Anda adalah string yang dihasilkan, mungkin dengan trailing newline. Anda tidak harus menerapkan algoritme yang tepat ini, selama output Anda benar. Perhatikan bahwa mungkin ada tanda kurung bersarang; dalam hal ini, kami akan memiliki catatan kaki yang berisi referensi ke catatan kaki lainnya. Substring di antara tanda kurung juga mungkin kosong. Lihat contoh uji di bawah ini untuk contoh.
Aturan dan Penilaian
Anda dapat menulis program lengkap atau fungsi. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Jika bahasa Anda tidak mendukung angka desimal ( batuk Retina batuk ), Anda dapat memberikan nomor catatan kaki di pangkalan lain, termasuk biner atau unary; namun, menggunakan angka yang tidak dikenal akan memberikan penalti + 20% .
Uji Kasus
Memasukkan:
This input contains no parentheses.
Keluaran:
This input contains no parentheses.
Memasukkan:
This has (some) parentheses (but not so many).
Keluaran:
This has <sup>1</sup> parentheses <sup>2</sup>.
<sub>1 some</sub>
<sub>2 but not so many</sub>
Memasukkan:
This has (nested (deeply (or highly?) nested)) parentheses (and several groups).
Keluaran:
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>
Memasukkan:
Hmm()(()(,)) a()((trt)(v( (((((wut)))))(X)(Y)(Z) )!?!?!?!))oooooooo(oooo)oooo
Keluaran:
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>
Perhatikan garis kosong di antara catatan kaki.
foo (bar)\nfoot (note)
?