```html <pre><code>تحليل متكرر لشجرة ثنائية مع التخزين المؤقت (ميموازيشن)</code></pre> ```
Swift
Hard
functions
مهمة «```html <pre><code>تحليل متكرر لشجرة ثنائية مع التخزين المؤقت (ميموازيشن)</code></pre> ```»
اكتب دالة تأخذ شجرة ثنائية ممثلة كمصفوفة من الأعداد الصحيحة (بترتيب traversal حسب المستوى، حيث يتم تمثيل null بـ 0)، وتُرجع أقصى مجموع لقيم العقد من الجذر إلى الورقة، بشرط أنه يمكن تخطي عقدتين متتاليتين على الأكثر في المسار. استخدم دالة تكرارية مع memoization للحساب الفعال. تحتوي الشجرة على ما يصل إلى 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