परिचय
एक टैक्स कलेक्टर है जिसे अपने राज्य के करों का प्रबंधन करने में कुछ परेशानी है: ऐतिहासिक रिकॉर्ड एक महान आग में जल गए हैं।
वह यह पता लगाना चाहता है कि वर्तमान धन जहां से विरासत में मिला था, उसके संदर्भ में कितने संभावित अतीत हो सकते हैं। सौभाग्य से, उसका राज्य बहुत सरल है।
राज्य को 2 डी बुलियन मैट्रिक्स द्वारा मॉडल किया जा सकता है, जहां l
किसी को विरासत में मिला पैसा है, और O
जो नहीं है उसका प्रतिनिधित्व करता है। उदाहरण के लिए:
l O l l
O O O l
l O l O
O O O l
(यह हमेशा एक आयत होगी)
अगली पीढ़ी में, राज्य छोटा है (भेड़िये मजबूत हैं!)।
अगली पीढ़ी इस तरह दिखेगी, पिछली पीढ़ी पर आधारित ( x
अगली पीढ़ी में एक वंशज के लिए एक प्लेसहोल्डर)
l O l l
x x x
O O O l
x x x
l O l O
x x x
O O O l
एक वंशज पूर्वजों कि सीधे उनके आसपास हैं देखेंगे (तो ऊपर-बाईं ओर x
देखेंगे { l
, O
, O
, O
} को बुलाया असंरेखित आयताकार पड़ोस )
यदि केवल एक पूर्वज को विरासत में पैसा मिला है, तो वंशज उनसे धन प्राप्त करेगा। यदि एक से अधिक पूर्वजों को विरासत में पैसा मिला है, तो वे भाग लेंगे और वंशज विरासत में नहीं पैसा खत्म कर देगा। अगर किसी को पैसा विरासत में नहीं मिला है, तो वंशज को कोई पैसा विरासत में नहीं मिलेगा।
(एक से अधिक वंशज एक पूर्वज से विरासत में प्राप्त कर सकते हैं)
तो, अगली पीढ़ी की तरह दिखेगा:
l l O
l l O
l l O
चुनौती
इनपुट
पीढ़ी की वर्तमान स्थिति, किन्हीं दो अलग-अलग मूल्यों के सरणियों के एक सरणी के रूप में, जहां आंतरिक सरणियां सभी समान लंबाई की हैं।
उदाहरण के लिए, ऊपर, यह हो सकता है:
[
[True, True, False],
[True, True, False],
[True, True, False]
]
उत्पादन
एक पूर्णांक पिछली अद्वितीय पीढ़ियों की संख्या का प्रतिनिधित्व करता है जहां अगली पीढ़ी इनपुट है।
आप मान सकते हैं कि उत्तर हमेशा 2 ^ 30 से कम होगा - 1. (या 1073741823)।
पिछली पीढ़ी को एक "प्रीइमेज" कहा जाएगा और यह चुनौती प्रीमैसेज को गिनने की होगी ।
स्कोरिंग
यह है एक सबसे तेजी से कोड चुनौती, इसलिए प्रत्येक जमा को मेरे कंप्यूटर पर परीक्षण किया जाएगा, और प्रस्तुत करने वाले को कम से कम समय लगेगा।
उदाहरण इनपुट और आउटपुट
(जहाँ 1
एक वंशज है जिसे विरासत में पैसा मिला है, और 0
एक ऐसा वंशज है जिसे विरासत में पैसा नहीं मिला है)
इनपुट:
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]]
आउटपुट:
4
इनपुट:
[[1, 0, 1, 0, 0, 1, 1, 1],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 1, 1, 1]]
आउटपुट:
254
इनपुट:
[[1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 1, 1, 0, 0]]
आउटपुट:
11567