Mục đích của nhiệm vụ này là xác định, dọn dẹp và đánh dấu tất cả các khuôn mặt trong bất kỳ "hình ảnh" nào.
Có gì trong khuôn mặt?
Một mặt sẽ là hình vuông ZxZ trong đó Z là số nguyên lẻ lớn hơn 1. Góc trên bên trái và bên phải và tâm sẽ là các ký tự 'O' và dòng dưới cùng sẽ là '\' và '/' bao quanh đủ Các ký tự '_' để điền vào phần còn lại của dòng. Ví dụ:
một khuôn mặt 3x3:
O O
O
\_/
khuôn mặt 5x5:
O O
O
\___/
một khuôn mặt 7x7:
O O
O
\_____/
Vân vân.
Đầu vào
Đầu vào sẽ có trên STDIN và sẽ bao gồm một số chuỗi ký tự có độ dài bằng nhau.
Đầu ra
Đầu ra phải là đầu vào với tất cả các khuôn mặt dễ nhận biết được xóa (tức là tất cả các ký tự ngoại trừ mắt, mũi và miệng phải được loại bỏ từ trong giới hạn của khuôn mặt) và được đóng hộp (bao quanh bởi các ký tự +, - và |). Trường hợp hai hoặc nhiều mặt trùng nhau nên được xóa và đóng hộp nhưng nên ưu tiên cho mặt lớn hơn (nên đặt trên cùng); nếu cả hai mặt có cùng kích thước, thì mức độ ưu tiên sẽ tùy theo người thực hiện. Nếu đầu vào không có mặt, đầu ra phải giống như đầu vào.
Vài ví dụ
Đầu vào:
*******
*******
**O*O**
***O***
**\_/**
*******
*******
Đầu ra:
*******
*+---+*
*|O O|*
*| O |*
*|\_/|*
*+---+*
*******
Đầu vào (mặt không hoàn chỉnh):
*******
*******
**O*O**
*******
**\_/**
*******
*******
Đầu ra:
*******
*******
**O*O**
*******
**\_/**
*******
*******
Đầu vào (các mặt lồng nhau):
*******
*O***O*
**O*O**
***O***
**\_/**
*\___/*
*******
Đầu ra:
+-----+
|O O|
| |
| O |
| |
|\___/|
+-----+
Đầu vào (nhiều mặt):
~{$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&^
Đầu ra:
+---+*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&^
Đầu vào (gần ranh giới):
~{$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&^
Đầu ra:
---+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&^
Đầu vào (các mặt chồng chéo):
~{$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&^
Đầu ra:
~{$FJ*TBNFU*YBVEXGY%
FX+---+-------+Z<>}+
X$|O |O O|JJKY%
@:| | |>?VKH
SD| O| |(UR$W
XV| | O |*(&P:
>?|\__| |:}~{&
~@+---| |}P>OU
:@<L::|\_____/|%^*BI
@{PO{_+-------+*&G&^