Враховуючи рядок, в якому потенційно розміщено вікно, перемкніть це поле. Це стає зрозумілішим у тестових випадках та поясненнях.
Введення-виведення
Формат введення
Вхід буде або одиночним рядком, розділеним CR, LF, або CRLF, або списком рядків. Формат введення залежить від вас.
Формат виводу
Формат виводу повинен бути в тому ж форматі, що і вхідний.
Пояснення + приклад
Візьмемо для прикладу рядок із коробкою:
+-------------+
|Hello, World!|
+-------------+
Щоб переключити поле, вилучаємо перший і останній рядок та перший і останній стовпчик. Ви можете припустити, що після останнього рядка не буде останнього пробілу (з необов'язковим кінцевим новим рядком в кінці останнього рядка), а також у жодному рядку без пробілу, не рахуючи нового рядка.
Це стане:
Hello, World!
Інший шлях
Якщо рядок не знаходиться у вікні, додайте до нього поле. Це досить просто; передбачте +---...---+
на власному рядку k
тире, де k
довжина найдовшої лінії, а потім для кожного рядка прокладіть його пробілом, який відповідає кінці, щоб відповідати довжині найдовшої лінії, а потім додайте та додайте символ труби ( "|"
). Нарешті, додайте рядок, що містить таку ж +---...---+
настройку, як і перший рядок.
Наприклад:
Hello, World!
стає:
+-------------+
|Hello, World!|
+-------------+
Ви можете припустити, що жоден рядок у вводі не матиме пробілу пробілу.
Ще один приклад рядка, який повинен мати поле навколо нього:
Hello,
World!
стає
+----------+
|Hello, |
| World!|
+----------+
Приклад того, що все-таки слід покласти в коробку:
+--------+
| |
--------+
стає:
+----------+
|+--------+|
|| ||
| --------+|
+----------+
Правила + Технічні умови
- Застосовуються стандартні лазівки
- Жоден рядок введення не матиме пробілів проміжних чи кінцевих пробілів як у загальному, так і в кожному рядку, незалежно від того, позначений він чи ні
- Коробки матимуть
+
як кути, так і|
вертикальні краї та-
горизонтальні сторони. - У коробці повинні бути свої плюси на місці, щоб вважатись коробкою; якщо вона має висоту або ширину 2 (тобто немає вмісту), вона все одно повинна бути без коробки, що призведе до купки нових рядків, залежно від висоти поля.
- Якщо на вході є поле, але текст поза рамкою, все це повинно бути розміщено в полі.
- Ваша програма повинна перевірити весь периметр рядка. Якщо окремий символ по зовнішній стороні невірний (або відсутній, або інший символ, ніж той, який він повинен бути), він повинен бути позначений коробкою, а не без коробки.
- Сам некомплектний рядок може містити
+ | -
. Якщо сама некомплектна рядок має поле навколо неї, поверніть рядок разом із полем; він повинен бути розпакований лише один раз.
Крайові випадки
1: Маленькі ящики
Вхід:
++
++
Вихід є порожнім або новим рядком
Вхід:
+----+
+----+
Вихід порожній або новий рядок
Вхід:
++
||
||
++
Вихід - 2 нові або 3 нові
2: Часткова коробка
Вхід:
+-------+
| Hello |
+ ------+
Вихід:
+---------+
|+-------+|
|| Hello ||
|+ ------+|
+---------+
3: Текст поза коробкою
Вхід:
+-------+
a| Hello |
+-------+
Вихід:
+----------+
| +-------+|
|a| Hello ||
| +-------+|
+----------+