छोटा चांडलर उदास है। उसे खुश करने के लिए एक बादल खींचें।
ध्यान दें: एक बादल ड्राइंग वास्तव में उसे खुश नहीं होगा।
एक सर्कल को 3-ट्यूपल के रूप में परिभाषित किया जा सकता है (x,y,r)
जहां x
एक कार्टेशियन प्लेन पर सर्कल की x स्थिति है, एक कारटेसियन प्लेन पर सर्कल y
की y स्थिति है, और r
सर्कल का त्रिज्या है। x
और y
नकारात्मक हो सकता है। r
हमेशा सकारात्मक है। इनपुट अलग-अलग 3-ट्यूपल्स के रूप में हलकों की एक सूची है। उदाहरण के लिए:
3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8
इसका 3,1,1
मतलब है " 3,1
1 त्रिज्या के 3,2,1.5
साथ केंद्र बिंदु के साथ एक चक्र । इसका मतलब है" 3,2
1.5 त्रिज्या के साथ केंद्र बिंदु के साथ एक चक्र ।
यदि हम एक ग्राफ पर इनपुट के इन सभी हलकों को आकर्षित करते हैं, तो यह इस तरह दिखता है (मैंने केवल स्पष्टता के लिए ग्रिड लाइनें और लेबल शामिल किए हैं; उनकी आवश्यकता नहीं है):
ध्यान दें कि सभी मंडल कैसे एकजुट होते हैं । यही है, वे सभी एक साथ ऐसे ओवरलैप किए गए हैं कि यह एक बड़े समूह को बनाता है, जो बाकी हिस्सों से अलग किए गए मंडलियों के किसी भी छोटे समूह के बिना है। इनपुट सामंजस्यपूर्ण होने की गारंटी है।
मान लीजिए कि अब हम एक रेखा खींचते हैं, जो इन मंडलियों द्वारा बनाई गई "सीमा" के चारों ओर घूमती है, बिना किसी अन्य रेखा के। यह सभी हलकों द्वारा गठित सिल्हूट की सीमा को खींचने जैसा होगा। परिणामी बादल कुछ इस तरह दिखेगा:
तो इस बादल का निर्माण केवल एक आकृति के परिणामस्वरूप होने वाले इनपुट में हलकों के चापों को जोड़कर किया गया है। दूसरे शब्दों में, क्लाउड केवल उन आर्क को आरेखित करके बनता है जो दूसरे सर्कल में नहीं हैं। आपका कार्यक्रम ऊपर वर्णित रूप में इनपुट में ले जाएगा, और एक छवि आउटपुट करेगा जो परिणामस्वरूप क्लाउड प्रदर्शित करता है। क्लाउड का समग्र आकार सही होना चाहिए, लेकिन स्केल, रंग, रेखा मोटाई और यह कैसे दिखता है, यह आपके ऊपर है। ध्यान दें कि बादल दिखाई देना चाहिए, इसलिए आप कुछ खींच नहीं सकते जैसे "यह कार्यक्रम एक सफेद पृष्ठभूमि पर एक सफेद बादल खींचता है", "यह कार्यक्रम एक छोटे से छोटे पैमाने पर एक बादल खींचता है", "यह कार्यक्रम 0 के साथ एक बादल खींचता है लाइन मोटाई ", आदि यह भी ध्यान दें कि सीमा का रंग भरण या पृष्ठभूमि के रंग से अलग होना चाहिए।
एक और उदाहरण। इनपुट:
1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7
आउटपुट:
यदि बादल में "छेद" है, तो आपको छेद को भी आकर्षित करना चाहिए। इनपुट:
0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4
आउटपुट:
यहां एक महत्वपूर्ण नियम है: आपके प्रोग्राम को केवल उन रेखाओं को खींचना चाहिए जो सीमा बनाती हैं। इसका मतलब यह है कि आप बस हलकों को पूरी तरह से नहीं खींच सकते हैं, और फिर हलकों को एक सफेद भराव के साथ थोड़ा छोटा खींच सकते हैं - क्योंकि यह विधि अभी भी उन रेखाओं को खींचती है जो एक सीमा नहीं बनाते हैं, यह सिर्फ उन्हें बाद में कवर करता है। नियम का उद्देश्य "हलकों को आकर्षित करना, फिर एक सफेद भरण के साथ हलकों को फिर से लागू करना", या इसके समान कुछ भी रोकना था। उत्तर से यह उम्मीद की जाती है कि वास्तव में यह गणना की जाए कि ड्राइंग करने से पहले चीजों को कहां खींचें।
यह कोड गोल्फ है, इसलिए सबसे छोटा कैरेक्टर काउंट जीतता है।