Tujuan dari tugas ini adalah untuk mengidentifikasi, membersihkan, dan menandai semua wajah dalam 'gambar' tertentu.
Apa yang ada di wajah?
Wajah akan menjadi kotak ZxZ di mana Z adalah bilangan bulat ganjil yang lebih besar dari 1. Sudut kiri dan kanan atas dan pusat akan menjadi karakter 'O', dan garis bawah akan menjadi '\' dan '/' di sekitarnya cukup karakter '_' untuk mengisi sisa baris. Contoh:
wajah 3x3:
O O
O
\_/
wajah 5x5:
O O
O
\___/
wajah 7x7:
O O
O
\_____/
dll.
Memasukkan
Input akan berada di STDIN dan akan terdiri dari sejumlah string karakter dengan panjang yang sama.
Keluaran
Keluaran harus berupa input dengan semua wajah yang dikenali dibersihkan (yaitu semua karakter kecuali mata, hidung dan mulut harus dikeluarkan dari batas wajah) dan kemas (dikelilingi oleh karakter +, -, dan |). Di mana dua atau lebih wajah tumpang tindih keduanya harus dibersihkan dan dikotakkan tetapi prioritas harus diberikan pada wajah yang lebih besar (harus ditempatkan di atas); jika kedua muka berukuran sama, prioritas diserahkan pada kebijaksanaan pelaksana. Jika input tidak memiliki wajah, output harus sama dengan input.
Beberapa contoh
Memasukkan:
*******
*******
**O*O**
***O***
**\_/**
*******
*******
Keluaran:
*******
*+---+*
*|O O|*
*| O |*
*|\_/|*
*+---+*
*******
Input (wajah tidak lengkap):
*******
*******
**O*O**
*******
**\_/**
*******
*******
Keluaran:
*******
*******
**O*O**
*******
**\_/**
*******
*******
Input (wajah bersarang):
*******
*O***O*
**O*O**
***O***
**\_/**
*\___/*
*******
Keluaran:
+-----+
|O O|
| |
| O |
| |
|\___/|
+-----+
Input (banyak wajah):
~{$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&^
Keluaran:
+---+*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&^
Input (batas dekat):
~{$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&^
Keluaran:
---+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&^
Input (wajah yang tumpang tindih):
~{$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&^
Keluaran:
~{$FJ*TBNFU*YBVEXGY%
FX+---+-------+Z<>}+
X$|O |O O|JJKY%
@:| | |>?VKH
SD| O| |(UR$W
XV| | O |*(&P:
>?|\__| |:}~{&
~@+---| |}P>OU
:@<L::|\_____/|%^*BI
@{PO{_+-------+*&G&^