इस कार्य का उद्देश्य किसी भी 'छवि' में सभी चेहरों की पहचान करना, उन्हें साफ करना और चिन्हित करना है।
चेहरे में क्या है?
एक चेहरा एक ZxZ वर्ग होगा जहाँ Z 1 से अधिक एक विषम पूर्णांक है। शीर्ष बाएँ और दाएँ कोने और केंद्र 'O' वर्ण होंगे, और निचला रेखा एक '\' और 'a' पर्याप्त रूप से चारों ओर होगा। '_' अक्षर शेष रेखा को भरने के लिए। उदाहरण:
एक 3x3 चेहरा:
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&^