कर रहे हैं 40 तरीके एक निर्देशित Hamiltonian पथ : पर एक 3 × 3 ग्रिड व्यवस्था की जा सकती
यह ग्राफिक ( धन्यवाद Sp3000! ) से पता चलता है केवल 20 अनिर्दिष्ट पथ। 40 निर्देशित रास्तों के लिए प्रत्येक रंगीन रेखा को दोनों दिशाओं में पार करें।
चुनौती
केवल मुद्रण योग्य ASCII का उपयोग करते हुए , अक्षरों का 3 × 3 ग्रिड लिखें, जैसे:
ABC
DEF
GHI
जब इस ग्रिड से 40 निर्देशित पथों में से प्रत्येक को 40 एकल-पंक्ति, 9-वर्ण कार्यक्रमों के रूप में पढ़ा जाता है, तो लक्ष्य प्रत्येक कार्यक्रम को 1 से 40 तक एक अद्वितीय पूर्णांक आउटपुट करना है। सभी 40 पथों के लिए ऐसा करना कठिन और संभावना नहीं लगता है, इसलिए आपको केवल उतने रास्तों के लिए काम करने की आवश्यकता है जितना आप कर सकते हैं।
सबमिशन जिसका 40 पथ-कार्यक्रम 1 से 40 तक सबसे अलग संख्या में आउटपुट करता है, विजेता होगा। टाईब्रेकर पहले की सबमिशन में जाता है।
पथ-प्रोग्राम जो त्रुटि को पूर्णांक से 1 से 40 तक आउटपुट नहीं करते हैं या एक पूर्णांक को आउटपुट करते हैं जो पहले से कवर किए गए किसी अन्य पथ-क्रम की गणना नहीं की जाती है। विशेष रूप से:
- प्रोग्राम जो त्रुटि, संकलन, दौड़ या बाहर निकलते समय गिने नहीं जाते हैं। चेतावनी ठीक है।
- कार्यक्रम कि नहीं उत्पादन 1 से 40 या उत्पादन कुछ करने के लिए एक पूर्णांक करना थोड़ा जैसे विकृत
-35
या35 36
नहीं गिने जाते हैं। - प्रोग्राम जिसमें आउटपुट का उत्पादन करने के लिए उपयोगकर्ता इनपुट की आवश्यकता होती है, उन्हें गिना नहीं जाता है।
- ऐसे कार्यक्रम जो कभी समाप्त नहीं होते हैं।
- से अब पर , प्रोग्राम हैं जो निर्धारित करने योग्य नहीं हैं गिने जाते हैं।
- अन्यथा मान्य प्रोग्राम जो 1 से 40 तक पूर्णांक का उत्पादन करते हैं, जो कि एक अन्य मान्य प्रोग्राम पहले से ही आउटपुट है, गिना नहीं जाता है। (पहला कार्यक्रम है गिना।)
- केवल प्रोग्राम जो 1 से 40 (समावेशी) से संख्याओं के पूर्णांक आउटपुट का प्रतिनिधित्व करते हैं, उन्हें आपके कुल की ओर गिना जाता है। संख्या सामान्य
1
,2
...39
,40
प्रारूप, प्रारूप में होने की उम्मीद है , जब तक कि यह आपकी भाषा के लिए आदर्श न हो। (आउटपुट में एक अनुगामी न्यूलाइन ठीक है।) - आपके प्रोग्राम के आउटपुट कौन से हैं और वे किस क्रम में हैं, इससे कोई फर्क नहीं पड़ता। केवल मान्य कार्यक्रमों से अलग पूर्णांक की संख्या मायने रखती है।
सभी पथ-कार्यक्रम एक ही भाषा में चलने चाहिए। हालांकि, "प्रोग्राम" वास्तव में फ़ंक्शन हो सकते हैं (बिना किसी आवश्यक तर्क के) या REPL कमांड, साथ ही पूर्ण प्रोग्राम, जो अपने लक्ष्य पूर्णांक को प्रिंट या वापस करते हैं। आप फ़ंक्शन, REPL कमांड और पूर्ण कार्यक्रमों के बीच मिश्रण और मिलान कर सकते हैं।
आपके 9 मुद्रण योग्य ASCII वर्णों को अलग होने की आवश्यकता नहीं है।
उदाहरण
यदि आपके 3 × 3 ग्रिड थे
ABC
DEF
GHI
और आपके 40 कार्यक्रम और आउटपुट इस तरह दिखे
ABCFEDGHI -> 26
ABCFIHEDG -> 90
ABCFIHGDE -> 2
ABEDGHIFC -> syntax error
ADEBCFIHG -> prints 40 but then errors
ADGHEBCFI -> 6
ADGHIFCBE -> 6
ADGHIFEBC -> 6
CBADEFIHG -> runtime error
CBADGHEFI -> 3
CBADGHIFE -> 4
CFEBADGHI -> -32
CFIHEBADG -> 38.0
CFIHGDABE -> "36"
EDABCFIHG -> 33
EFCBADGHI -> no output
EHGDABCFI -> compilation error
EHIFCBADG -> 8
GDABCFEHI -> 22
GHEDABCFI -> 41
IHGDEFCBA -> 0
GDEHIFCBA -> '9'
EDGHIFCBA -> +10
CFIHGDEBA -> 11
GHIFCBEDA -> error
IFCBEHGDA -> error
EBCFIHGDA -> prints 23 but then loops infinitely
CBEFIHGDA -> randomly prints either 24 or 44
GHIFEDABC -> error
IFEHGDABC -> 30
EFIHGDABC -> 39
IHGDABEFC -> 7
GDABEHIFC -> 29
EBADGHIFC -> -1
GHIFCBADE -> 26
IHGDABCFE -> 1
IFCBADGHE -> error
GDABCFIHE -> no output
IHEFCBADG -> no output
IFCBADEHG -> "quack"
आपका स्कोर 14 होगा, क्योंकि 1 से 40 वैध आउटपुट से 14 अलग पूर्णांक हैं, अर्थात् 26 2 6 3 4 33 8 22 11 30 39 7 29 1
।
123654789