Мета цього завдання - виявити, очистити та відзначити всі обличчя в будь-якому даному "зображенні".
Що в обличчі?
Обличчям буде квадрат ZxZ, де Z - непарне ціле число, що перевищує 1. У верхньому лівому та правому кутах та в центрі будуть символи 'O', а нижня лінія буде достатньо оточуючих '\' та '/' символи '_', щоб заповнити решту рядка. Приклади:
обличчя 3х3:
O O
O
\_/
обличчя 5x5:
O O
O
\___/
обличчя 7x7:
O O
O
\_____/
тощо.
Вхідні дані
Введення буде на STDIN і буде складатися з ряду рядків рівних за довжиною символів.
Вихідні дані
Вихідні дані повинні бути вхідними та очищеними всіма особами (тобто всі символи, за винятком очей, носа та рота, повинні бути видалені з-за меж обличчя) та поставлені у вікні (оточені символами +, - та | |). Там, де дві або більше граней перекриваються, обидві повинні бути очищені та позначені коробочкою, але пріоритет повинен бути наданий більшій грані (вона повинна бути розміщена зверху); якщо обидві грані однакового розміру, пріоритет залишається на розсуд виконавця. Якщо на вході немає граней, вихід повинен бути таким же, як і вхід.
Деякі приклади
Вхід:
*******
*******
**O*O**
***O***
**\_/**
*******
*******
Вихід:
*******
*+---+*
*|O O|*
*| O |*
*|\_/|*
*+---+*
*******
Введення (неповне обличчя):
*******
*******
**O*O**
*******
**\_/**
*******
*******
Вихід:
*******
*******
**O*O**
*******
**\_/**
*******
*******
Введення (вкладені обличчя):
*******
*O***O*
**O*O**
***O***
**\_/**
*\___/*
*******
Вихід:
+-----+
|O O|
| |
| O |
| |
|\___/|
+-----+
Введення (кілька граней):
~{$FJ*TBNFU*YBVEXGY%
FOCO$&N|>ZX}X_PZ<>}+
X$OOPN ^%£)LBU{JJKY%
@\_/$£!SXJ*)KM>>?VKH
SDY%£ILO(+{O:HO(UR$W
XVBFTER^&INLNLO*(&P:
>?LKPO)UJO$£^&L:}~{&
~@?}{)JKOINLM@~}P>OU
:@<L::@\___/GER%^*BI
@{PO{_):<>KNUYT*&G&^
Вихід:
+---+*TBNFU*YBVEXGY%
|O O|&N|>ZX}X_PZ<>}+
| O |N ^%£)LBU{JJKY%
|\_/|£+-----+M>>?VKH
+---+I|O O|HO(UR$W
XVBFTE| |LO*(&P:
>?LKPO| O |&L:}~{&
~@?}{)| |@~}P>OU
:@<L::|\___/|ER%^*BI
@{PO{_+-----+YT*&G&^
Введення (біля межі):
~{$FJ*TBNFU*YBVEXGY%
OCO$&N|>ZX}X_PZ<>}+^
$OOPN ^%£)LBU{JJKY%{
\_/$£!SXJ*)KM>>?VKHU
SDY%£ILO(+{8:HO(UR$W
XVBFTER^&INLNLO*(&P:
>?LKPO)UJ^$£^&L:}~{&
~@?}{)JKOINLM@~}P>OU
:@<L::@BJYT*GER%^*BI
@{PO{_):<>KNUYT*&G&^
Вихід:
---+J*TBNFU*YBVEXGY%
O O|&N|>ZX}X_PZ<>}+^
O |N ^%£)LBU{JJKY%{
\_/|£!SXJ*)KM>>?VKHU
---+£ILO(+{8:HO(UR$W
XVBFTER^&INLNLO*(&P:
>?LKPO)UJ^$£^&L:}~{&
~@?}{)JKOINLM@~}P>OU
:@<L::@BJYT*GER%^*BI
@{PO{_):<>KNUYT*&G&^
Введення (перекриття граней):
~{$FJ*TBNFU*YBVEXGY%
FXC£$&N|>ZX}X_PZ<>}+
X$*OPN O%£)LBO{JJKY%
@:U%$£!SXJ*)KM>>?VKH
SDY%£OLO(+{P:HO(UR$W
XVBFTER^&IOLNLO*(&P:
>?L\___/JR$£^&L:}~{&
~@?}{)JKOINLM@~}P>OU
:@<L::@\_____/R%^*BI
@{PO{_):<>KNUYT*&G&^
Вихід:
~{$FJ*TBNFU*YBVEXGY%
FX+---+-------+Z<>}+
X$|O |O O|JJKY%
@:| | |>?VKH
SD| O| |(UR$W
XV| | O |*(&P:
>?|\__| |:}~{&
~@+---| |}P>OU
:@<L::|\_____/|%^*BI
@{PO{_+-------+*&G&^