यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: <code>मेमोइज़ेशन के साथ बाइनरी ट्री का रिकर्सिव विश्लेषण</code>

Swift Hard functions

कार्य «यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: <code>मेमोइज़ेशन के साथ बाइनरी ट्री का रिकर्सिव विश्लेषण</code>»

एक फ़ंक्शन लिखें जो एक बाइनरी ट्री को स्वीकार करता है, जो पूर्णांकों की एक सरणी के रूप में प्रस्तुत किया गया है (लेवल-ऑर्डर ट्रैवर्सल, null को 0 के रूप में दर्शाया गया है), और रूट से लीफ तक नोड्स के मानों का अधिकतम योग लौटाता है, बशर्ते कि पथ पर लगातार दो से अधिक नोड्स को छोड़ा न जा सके। कुशल गणना के लिए मेमोइज़ेशन के साथ एक रिकर्सिव फ़ंक्शन का उपयोग करें। ट्री में अधिकतम 1000 नोड्स हैं, मान -100 से 100 तक हैं।

इनपुट प्रारूप

पहली पंक्ति: एक पूर्णांक n (1 ≤ n ≤ 1000) — सरणी में तत्वों की संख्या। दूसरी पंक्ति: रिक्त स्थान से अलग किए गए n पूर्णांक — पेड़ का स्तर-वार प्रतिनिधित्व (0 एक नोड की अनुपस्थिति को दर्शाता है)।

आउटपुट प्रारूप

एक पूर्णांक — जड़ से पत्ती तक अधिकतम योग, जिसमें लगातार दो से अधिक नोड्स को छोड़ने की संभावना को ध्यान में रखा गया है।

उदाहरण

उदाहरण 1

इनपुट
3 ab bc ca
आउटपुट
6

उदाहरण 2

इनपुट
1 10
आउटपुट
10

उदाहरण 3

इनपुट
5 10 5 15 0 0
आउटपुट
25

उदाहरण 4

इनपुट
2 abc def
आउटपुट
0
main.swift