このタスクの目的は、特定の「イメージ」内のすべての顔を識別、クリーンアップ、およびマークアウトすることです。
顔には何がありますか?
面はZxZの正方形で、Zは1より大きい奇数の整数です。左上と右の角と中央は「O」の文字で、下の線は「\」と「/」で十分に囲みます。行の残りを埋める '_'文字。例:
3x3の顔:
O O
O
\_/
5x5の顔:
O O
O
\___/
7x7の顔:
O O
O
\_____/
等
入力
入力はSTDIN上にあり、同じ長さの文字列で構成されます。
出力
出力は、認識可能なすべての顔がクリアされた入力(つまり、目、鼻、口以外のすべての文字が顔の境界内から削除される)およびボックス(+、-、および|文字で囲まれた)でなければなりません。2つ以上の顔が重なる場合は、両方をクリアしてボックス化する必要がありますが、大きな顔を優先する必要があります(上に配置する必要があります)。両方の面のサイズが同じ場合、優先順位は実装者の裁量に任されます。入力に面がない場合、出力は入力と同じである必要があります。
いくつかの例
入力:
*******
*******
**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&^