आपके पास एक प्लेट पर पेनकेक्स का ढेर है, जिसके ऊपर सिरप का एक ग्लोब इतना गाढ़ा है कि यह नीचे की तरफ नहीं चल सकता है। आप तब तक खाने के लिए खुश नहीं होंगे जब तक कि प्रत्येक पैनकेक के दोनों चेहरे कम से कम सिरप को न छू लें, लेकिन अभी शीर्ष पैनकेक के केवल एक चेहरे के पास है।
आप जानते हैं कि सिरप कभी भी एक पैनकेक के माध्यम से सोख नहीं करेगा, लेकिन इसे दो पेनकेक्स के बीच आमने-सामने संपर्क के माध्यम से अनिश्चित काल के लिए स्थानांतरित किया जा सकता है। एक बार पैनकेक का एक चेहरा सिरप को छूने के बाद इसे हमेशा के लिए सिरप में लेपित माना जाता है, और यह किसी भी गैर-सिरप लेपित चेहरे को बनाएगा जो इसे सिरप के रूप में अच्छी तरह से छूता है। सिरप को प्लेट के ऊपर और नीचे से भी स्थानांतरित करना संभव है।
आप एक या एक से अधिक पेनकेक्स के नीचे एक स्पैटुला डालकर और उन्हें पूरी तरह से फ्लिप करते हुए, हर पैनकेक चेहरे को सिरप के साथ कोट करने के लिए आगे बढ़ते हैं, जैसा कि पैनकेक छंटाई में किया जाता है । (दुर्भाग्य से यह स्पैटुला सिरप-प्रतिरोधी है, और पैनकेक चेहरे को छूने से सिरप को वितरित करने में मदद नहीं करता है।) अफसोस की बात है कि आप किस पैनकेक के सिरप को छू चुके हैं, लेकिन आपको अपने द्वारा किए गए फ़्लिप्स याद हैं।
अपने पिछले झोंकों को देखते हुए आप यह निर्धारित कर सकते हैं कि आपके पेनकेक्स अभी तक सिरप के साथ लेपित हैं?
चुनौती
एक प्रोग्राम लिखें जो पैनकेक की संख्या के लिए एक सकारात्मक पूर्णांक एन में लेता है, और आपके द्वारा अब तक किए गए फ़्लिप के लिए सकारात्मक पूर्णांक (सभी <= एन) की एक सूची। सूची में प्रत्येक संख्या उन पैनकेक की संख्या को दर्शाती है जो फ़्लिप किए गए थे। यदि पैनकेक्स को कोट किया जा रहा है और नहीं तो फाल्सी वैल्यू होने पर एक सत्य मूल्य का उत्पादन करें। ( सच्चाई / झूठी परिभाषा )
इनपुट को स्टडिन या कमांड लाइन से आना चाहिए और आउटपुट को स्टडआउट (या निकटतम विकल्प) पर जाना चाहिए। यह ठीक है अगर आपके इनपुट को थोड़ा अतिरिक्त स्वरूपण की आवश्यकता है: उदाहरण [1, 1, 2, 2]
के 1 1 2 2
लिए सूची के बजाय ।
उदाहरण
एन = 2 मान लें, तो हमारे पास एक प्लेट पर दो पेनकेक्स का ढेर है, जो शीर्ष पर सिरप से शुरू होता है।
यदि सूची है 1 1 2 2
, इसका मतलब है कि हम ...
- शीर्ष पैनकेक फ्लिप करें - नीचे पैनकेक के ऊपरी चेहरे को कोटिंग करें
- शीर्ष को फिर से फ्लिप करें - शीर्ष पैनकेक के मूल निचले चेहरे को कोटिंग
- दोनों को पलटें - प्लेट को कोटिंग करें
- दोनों फिर से फ्लिप करें - नीचे पैनकेक के मूल नीचे के चेहरे को कोटिंग करें
चूंकि सभी चार चेहरे लेपित हैं, इसलिए आउटपुट कुछ इस तरह होगा True
या 1
।
यदि सूची है 1 2 2 1
, इसका मतलब है कि हम ...
- शीर्ष पैनकेक फ्लिप करें - नीचे पैनकेक के ऊपरी चेहरे को कोटिंग करें
- दोनों पलटें - कुछ भी नहीं कोटिंग
- दोनों को फिर से पलटें - कुछ नहीं कोटिंग
- शीर्ष को फिर से फ्लिप करें - शीर्ष पैनकेक के मूल निचले चेहरे को कोटिंग
चूंकि प्लेट को छूने वाला चेहरा अभी भी सिरप-मुक्त है, इसलिए आउटपुट कुछ इस तरह होगा False
या 0
।
टिप्पणियाँ
- फ्लिप सूची मनमाने ढंग से बड़ी हो सकती है और खाली हो सकती है, जिस स्थिति में आउटपुट गलत है।
- प्लेट एक सिरप-वाहक के रूप में कार्य करती है, लेकिन इससे कोई फर्क नहीं पड़ता कि यह लेपित है या नहीं। (वास्तव में कोई भी फ्लिप समाधान प्लेट को कोट करेगा क्योंकि पैनकेक का सामना करना पड़ता है जो स्पर्श किया जाना चाहिए, लेकिन लेपित होना चाहिए।
- प्लेट को फ़्लिप नहीं किया जा सकता है।
- आप मान सकते हैं कि ये पेनकेक्स केवल दो विपरीत चेहरों के बारे में बोलने के लिए यूनिट डिस्क नहीं हैं।
स्कोरिंग
यह कोड-गोल्फ है। बाइट्स में सबसे छोटा समाधान जीतता है।
Put syrup on the pancakes!
:;)