Скажімо, я щось писав, і я випадково написав це в неправильному полі:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
| Truck | |
| eat | Banana |
| | Car |
+-------+--------+
Тож я, ледачись, просто малюю стрілку на простір, який він повинен бути:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
|[Truck]---> |
| eat | Banana |
| | Car |
+-------+--------+
Ваше завдання - зробити так, щоб це виглядало красиво - перетворіть це на це:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
| | Truck |
| eat | Banana |
| | Car |
+-------+--------+
Правила
- Фрази або слова оточені дужками ([...])
Багаторядкові записи позначаються як [...](багаторядковий вилучений), новий рядок, [...] --...-->. Тож стрілка завжди виходить із правогонижньогодужки
Наприклад:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| | |
|[is a noun]-> |
| eat | Banana |
| | Car |
+-----------+----------+
Перетворюється на:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| | |
| | is a noun|
| eat | Banana |
| | Car |
+-----------+----------+
- Поле обмежено плюсами ("+"), і слід вважати, що стрілки не пройдуть плюс
- На кінці стрілки завжди знайдеться місце для відповідного слова або фрази
- Порядок має значення - слово повинно з’являтися там, де стрілка вказує, хоча вертикальне вирівнювання не важливо
- Стрілки можуть повертатися на 90 градусів одночасно, але лише між "/" та "\" (див. Нижче)
Наприклад:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| [Truck]--\| |
/------------/| <--\
| | eat | Banana ||
| | /--\ | Car ||
| +--|--|-----+----------+|
\----/ \-----------------/
Змагання
Будь-який вхід прийнятний (текстовий файл, STDIN тощо),
будь-який читабельний вихід є прийнятним (текстовий файл, STDOUT тощо)
Ось ще кілька прикладів:
Це кодовий гольф, тому найкоротший код виграє!
Деякі тестові випадки:
+--------+----------+-------------+
| Colors | Foods | Countries |
+--------+----------+-------------+
| red | pizza | Switzerland |
/--> /----> | |
| |[kale]/ | hot dogs | Brazil |
| | <----------------------\ |
| | orange |[yellow]\ | [green]/ |
| +--------+--------|-+-------------+
\-------------------/
/------------------------------------------\
| |
| +------------------+----------+-------+ |
| | frog | | | |
| | forge | dog | eagle | |
| | foundation | diligent | ease | |
| |[Brother]--\ | down | elf | |
| | | |[egg]--\ |[fort]---/
\----> | | | | |
| \-\ | \-----> |
+-------------|----+----------+ |
| Boy \--> | |
| Bull | |
| Browser | |
+-----------------------------+-------+
/--------------------------------------\
| /---------------\|
/------------|---------------------/ ||
| | /---------------\ ||
| +---------|-+-----------+-|------+--------|+ ||
\----> | | clarinet | \> | [drums]/| ||
| [viola]\\---> | +---------+ ||
| \-----> | | |/---/|
+-----------+ [violin]\ | | [cello]--/ |
| <------------/ | +---------+ |
| +-----------+ <----------\| |
| | | | [tuba]/| |
| | [piano]\ | | | |
| <-----------/ | | | |
| +-----------+--------+ | |
| | |[trumpet]------/
| [flute]-----> | |
| | saxaphone | |
+-----------+--------------------+---------+