परिचय
आप अपने सहकर्मी के साथ बैठे हैं, दोपहर का भोजन कर रहे हैं, और आप उसके साथ काम कर रहे नवीनतम और कथित रूप से सबसे बड़ी परियोजना के बारे में / उसकी डींग मार रहे हैं। अहंकार के अपने निरंतर प्रदर्शन से बीमार और थके हुए, वह आपको एक चुनौती देता है, ताकि आप चुप रहें। आप जो अहंकारी और खुशमिजाज व्यक्ति हैं, आप निश्चित रूप से स्वीकार करते हैं (क्योंकि आपको हर चुनौती को स्वीकार करना चाहिए )। चुनौती , के रूप में वह / वह बताते हैं यह है, एक दिए गए इनपुट में 1 या प्रत्येक वर्ण के अधिक से युक्त पाठ का कोई खंड की !@#$^&*, उत्पादन किसी भी उचित प्रारूप स्विच (ते) है कि / के निर्देशांक "पर" कर रहे हैं।
आपके सहकर्मी के अनुसार, एक स्विच एक है $, और एक स्विच को "पर" के रूप में वर्गीकृत किया जाता है, अगर और केवल अगर यह निम्न मानदंडों में से कम से कम 1 को संतुष्ट करता है:
यह चारों ओर से घिरा हुआ है
^। इसलिए...^^^ ^$^ ^^^"चालू" स्विच में परिणाम।
यह चारों ओर से घिरा हुआ है
&। इसलिए...&&& &$& &&&"चालू" स्विच में परिणाम।
यह पूरी तरह से कम से कम दो तरफ से ढंका हुआ है
*। उदाहरण के लिए,*** &$& ***"चालू" स्विच में परिणाम, लेकिन
&*& &$& &*&नहीं है, क्योंकि स्विच पूरी तरह से किसी भी दो तरफ से कवर नहीं किया गया है
*।इसके चारों ओर के किसी भी कोने में कम से कम 1
!और / या 1@है। यह गिनती नहीं है अगर इनमें से कोई एक कोने में नहीं है। इसलिए...!&& ^$@ @&!"ऑन" स्विच में परिणाम, क्योंकि कम से कम 1
!और / या@कम से कम 1 कोनों में है (उपरोक्त मामले में, 3 कोनों में 2 मान्य!s और 1 वैध हैं@)। तथा...&!& ^$@ ^!&करता नहीं हालांकि देखते हैं 2,
!और 1@के बाद से उनमें से कोई भी कर रहे हैं, किसी भी कोने में।1 या अधिक स्विच के आसपास किसी भी पक्ष पर नहीं
#हैं , जब तक कि कम से कम 1 स्विच को घेर नहीं लेता है। दूसरे शब्दों में, यदि किसी पक्ष में कम से कम 1 मौजूद है, तो यह अन्य सभी नियमों से आगे निकल जाता है, जब तक कि कोई वर्तमान भी न हो । इसलिए:&#&#&* *$* !**"ऑन" स्विच में परिणाम, हालांकि
#मौजूद है, क्योंकि&स्विच के आसपास है, और यह उपरोक्त नियमों में से कम से कम 1 का पालन करता है। हालाँकि, यदि विस्मयादिबोधक बिंदु इस तरह मौजूद नहीं थे:#&* *$* ***स्विच बंद हो जाएगा, क्योंकि यह उपरोक्त नियमों में से कम से कम एक का पालन नहीं करता है। इसलिए, भले ही एक स्विच ए
#और ए से घिरा हो सकता है&, यह तब भी बंद रहेगा जब तक कि यह इनमें से एक या अधिक नियमों का पालन नहीं करता है। इसके अलावा, स्विच के वैध होने के लिए हमेशा&s और#s के बीच एक> = 1: 1 अनुपात होना चाहिए। उदाहरण के लिए,#&! *$* **#फिर भी एक अमान्य स्विच होगा, हालांकि यह इन नियमों में से 1 का अनुसरण करता है, क्योंकि 2
#एस हैं, लेकिन केवल 1&, और इसलिए&एस और#एस के बीच एक> = 1: 1 अनुपात नहीं है । इसे वैध बनाने के लिए, आपको&किसी भी किनारे पर 1 या अधिक अतिरिक्त एस जोड़ना होगा ताकि संभवतः#एस और&एस की संख्या को संतुलित किया जा सके, जैसे:#&! *$& &*# 3:2 ratio between &s and #sआखिरकार...
#^^ ^$* @^!"बंद" स्विच के परिणामस्वरूप, हालांकि यह उपरोक्त नियमों में से 1 या अधिक का अनुसरण करता है, क्योंकि इसमें इसके चारों ओर कम से कम 1
#होता है, और&इसे आउट करने के लिए कोई एस नहीं है।वैध स्विच होगा केवल होना अंदर एक इनपुट, और इसलिए, प्रत्येक वैध
$घिरा होना चाहिए पूरी तरह से मान्य वर्ण के किसी भी 8 से। उदाहरण के लिए, यदि पूरा इनपुट होना था:*$* !$! !!!शीर्ष
$निश्चित रूप से मान्य स्विच नहीं है क्योंकि स्विच एक किनारे पर है, और इसलिए स्विच पूरी तरह से 8 वैध वर्णों से घिरा नहीं है। इस उदाहरण में, स्विच पर भी विचार नहीं किया जाना चाहिए। हालांकि, बीच में स्विच पूरी तरह से वैध है, और तथ्य के रूप में "पर" है, क्योंकि यह उपरोक्त आवश्यकताओं में से कम से कम एक को पूरा करता है।
वर्णों के इस ब्लॉक को प्रदर्शित करने के लिए:
!@#^^$#!@
!@#$$*$&@
@$^!$!@&&
जिसे हम निर्देशांक के लिए लेबल कर सकते हैं, जैसे कि ऊर्ध्वाधर अक्ष yऔर क्षैतिज अक्ष को कॉल करना x:
y
3 !@#^^$#!@
2 !@#$$*$&@
1 @$^!$!@&&
123456789 x
निर्देशांक को हमेशा(x,y) दो-आयामी समन्वय ग्रिड के समान प्रारूप में लौटाया जाना चाहिए । अब, कौन से स्विच चालू हैं? अच्छा, चलो पहले उन सभी को ढूंढते हैं। हम पहले से ही देख सकते हैं कि बहुत ऊपर पंक्ति में 1 है, और बहुत नीचे में एक और है। हालाँकि, वे स्वचालित रूप से नो-ऑप हैं, क्योंकि वे पूरी तरह से 8 वर्णों से घिरे नहीं हैं।
अगली पंक्ति में एक आता है 2. विशेष रूप से, यह एक:
#^^
#$$
^!$
हम देख सकते हैं कि इसमें 3 $संकेत हैं , लेकिन हम सिर्फ बीच में एक पर ध्यान केंद्रित करना चाहते हैं, और, जैसा कि आप शायद देख सकते हैं, यह पहले से ही अमान्य है, क्योंकि इसके पास 2 #एस है जिसके चारों ओर कोई &संतुलन नहीं है। बाहर। इसके अतिरिक्त, यह किसी भी नियम का पालन नहीं करता है, इसलिए भले ही यह वैध स्विच था, फिर भी यह "बंद" होगा।
अगला पंक्ति 2 में एक और आता है:
^^$
$$*
!$!
फिर, केवल बीच में स्विच पर ध्यान दें। यह स्विच के बाद से यह है, "पर" है कम से कम 1 !में कम से कम 1 कोने। इस एक के निर्देशांक हैं (5,2)।
आगे बढ़ते हुए, हम अंत में अंतिम स्विच पर जाते हैं। यह दूसरी पंक्ति में भी है और ऐसा प्रतीत होता है:
$#!
*$&
!@&
और, जैसा कि आप शायद देख सकते हैं, यह एक वैध स्विच भी है, हालांकि इसके #आस-पास भी है, क्योंकि वहाँ 2 अन्य &असंतुलन हैं #। इसके अलावा, इसमें कम !से कम 1 कोनों में से कम से कम 1 भी है, और इसलिए न केवल स्विच मान्य है, बल्कि यह "ऑन" भी है। इस स्विच के निर्देशांक हैं (7,2)।
हम अंत में अंत तक पहुंच गए हैं, और पाठ पर उस पूरे ब्लॉक में "2" को "स्विच" पर पाया है। उनके निर्देशांक हैं (5,2)और (7,2), जो हमारा अंतिम उत्तर है, और आउटपुट क्या होना चाहिए। हालाँकि, यह इनपुट बहुत सरल था। इनपुट बहुत बड़ा हो सकता है, क्योंकि टेक्स्ट का ब्लॉक कितना बड़ा हो सकता है, इसकी कोई सीमा नहीं है। उदाहरण के लिए, इनपुट 200x200पाठ का एक यादृच्छिक ब्लॉक भी हो सकता है ।
contraints
मानक ढीले निषिद्ध हैं।
इसके लिए संभवतः कोई अंतर्निहित नहीं हो सकता है, लेकिन सिर्फ मामले में (आप की ओर देखते हुए गणितज्ञ), बिल्ट-इन का उपयोग जो सीधे इसे हल करने के लिए निषिद्ध है।
परीक्षण के मामलों:
प्रारूप में दिया गया है string input -> [array output]:
@#$$&^!&!#
@*&!!^$&^@
$!#*$@#@$! -> [[7,3],[9,2]]
*@^#*$@&*#
#^&!$!&$@@#&^^&*&*&&
!^#*#@&^#^*$&!$!*^$$
#^#*#$@$@*&^*#^!^@&* -> [[19,3],[15,3],[8,2]]
#$@$!#@$$^!#!@^@^^*#
@!@!^&*@*@
*$*^$!*&#$
@$^*@!&&&#
**$#@$@@#! -> [[2,8],[5,8],[6,6],[9,3]]
##*&*#!^&^
$&^!#$&^&@
^^!#*#@#$*
$@@&#@^!!&
#@&#!$$^@$
!!@##!$^#!&!@$##$*$#
$^*^^&^!$&^!^^@^&!#!
@*#&@#&*$!&^&*!@*&** -> [[9,4],[9,3]]
^!!#&#&&&#*^#!^!^@!$
&$$^*$^$!#*&$&$#^^&$
अधिक जल्द ही आ रहा
अतिरिक्त नोट्स
- आप मान सकते हैं कि इनपुट हमेशा एक पूर्ण ब्लॉक के रूप में होगा (यानी एक आयत या वर्ग)
- इनपुट में किसी भी अन्य वर्ण की तुलना में कभी नहीं होगा
!@#$^&*।
याद रखें, यह एक कोड-गोल्फ है इसलिए सबसे छोटा कोड जीतता है!