पहचान
आप एक लंबी मेज के अंत में एक बोर्ड रूम में बैठे हैं। आप चारों ओर देखते हैं और टिम कुक, ऐप्पल बोर्ड ऑफ डायरेक्टर्स, स्टीव जॉब्स और जैक डोनाघी के भूत को देखते हैं। ऐप्पल ने इस बैठक को बुलाया क्योंकि उन्हें एहसास हुआ कि एंड्रॉइड लॉक स्क्रीन कितना कूलर है, और वे उन्हें 1-यूपी करना चाहते हैं। कमरे में हर कोई आपको भूत स्टीव के रूप में देखता है, रोता है, "मेरी मदद करो, कोड गॉल्फ मैन! तुम मेरी एकमात्र आशा हो!"
समस्या
एंड्रॉइड लॉक स्क्रीन डॉट्स की एक 3 x 3 ग्रिड है जो एक बिंदु से दूसरे तक एक उंगली को स्वाइप करके कनेक्ट किया जा सकता है, एक पथ बना सकता है। एक पासवर्ड किसी भी संभावित पथ को माना जाता है जिसमें किसी भी संख्या में डॉट्स शामिल होते हैं, और किसी भी संख्या में डॉट्स को बाहर करता है। (वास्तविक फोन पर, पथ कम से कम 4 डॉट लंबा होना चाहिए। इस चुनौती के लिए, उस प्रतिबंध पर ध्यान न दें।) Apple की योजना 3 x 3 ग्रिड को M x N ग्रिड से बदलने की है, जो कि (M * N) / 9 है। समय बेहतर!
नियम:
उदाहरण के लिए, एक 3x3 ग्रिड पर डॉट्स के साथ 1 से 9 तक गिने जाते हैं:
1 2 3
4 5 6
7 8 9
कुछ मान्य रास्ते हैं:
1
3
7,2,3
1,5,9,2
1,8,6,5,4
4,2,3,5,6,7,8,9
5,9,6,4
और कुछ अवैध रास्ते हैं:
1,3
1,9,5
7,5,4,7
4,6
आपका इनपुट तीन नंबर का होगा:
(M,N,d)
जहां ग्रिड M x N है, और d पथ की लंबाई है
1 <= M <= 16
1 <= N <= 16
1 <= d <= M * N
आपके प्रोग्राम या फ़ंक्शन को अल्पविराम द्वारा अलग किए गए स्ट्रिंग के रूप में इनपुट दिया जाएगा, और इसे उस लंबाई के संभावित पासवर्ड की संख्या को वापस करना होगा। उदाहरण के लिए:
Input: 2,2,1
Output: 4
Input: 2,2,2
Output: 12
Input: 7,4,1
Output: 28
मानक कोड गोल्फ नियम लागू होते हैं, सबसे छोटा कोड जीतता है!
//If I've made a mistake or the rules are unclear, please correct me!
256!
16 x 16 ग्रिड पर डॉट्स के सभी अनुमतियों को सत्यापित करता है जो एक वैध अनलॉक पैटर्न का प्रतिनिधित्व करता है। व्यवहार में, ऐसा कार्यक्रम कभी समाप्त नहीं होगा।