מציאת המסלול המהיר ביותר בין שני כבישים

נתונים שני מערכים חד-ממדיים road1 ו-road2 מלאים במספרים שלמים חיוביים באורך N. כל מערך מתאר נסיעה בכביש הבנוי מ-N מקטעים, כך שכל אינדקס i במערך שווה למספר הדקות הנדרשות לעבור מקטע i של הכביש. שני הכבישים מתחילים במקום A ומסתיימים במקום B.

נהג מתחיל מכביש מסוים (אחד משניהם), כלומר עובר בו לפחות מקטע אחד, וניתן לעבור לכביש השני פעם אחת לכל היותר. כלומר, יתכן גם שהוא מתחיל בכביש 1 ונוסע עד סופו בלי לעבור בכלל לכביש 2 (ולהפך).

בהינתן שני המערכים, יש להחזיר את מספר הדקות במסלול המהיר ביותר שהנהג יכול לנסוע.

לדוגמה, אם נתונים המערכים הבאים:

 01234567
road1=545812993
 01234567
road2=73312102107

המסלול המהיר ביותר הוא המסומן: הנהג נוסע שישה מקטעים בכביש 2, עובר לכביש 1 פעם אחת, ונוסע בו את שני המקטעים האחרונים. ויוחזר הערך 49 שהוא הזמן של המסלול המהיר ביותר (7+3+3+12+10+2+9+3 = 49).

השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.

דוגמה 1:
קלט:
road1 = [5, 4, 5, 8, 12, 9, 9, 3],
road2 = [7, 3, 3, 12, 10, 2, 10, 7]
פלט:
49

הסבר: הנהג מתחיל בכביש 2, נוסע 6 מקטעים, ואז עובר לכביש 1 לשני המקטעים האחרונים: 7+3+3+12+10+2+9+3 = 49.

דוגמה 2:
קלט:
road1 = [1, 2, 3, 4, 5],
road2 = [5, 4, 3, 2, 1]
פלט:
9

הסבר: התחלה בכביש 1 ומעבר לכביש 2 אחרי 2 מקטעים: 1+2+3+2+1 = 9.

דוגמה 3:
קלט:
road1 = [10, 10, 10, 10],
road2 = [1, 1, 1, 1]
פלט:
4

הסבר: הנהג מתחיל בכביש 2 ונוסע עד סופו ללא מעבר, זמן הנסיעה הוא 4 דקות.

דוגמה 4:
קלט:
road1 = [3, 3, 3, 3, 3],
road2 = [3, 3, 3, 3, 3]
פלט:
15

הסבר: כל המסלולים שווים – זמן הנסיעה 15 דקות.

דוגמה 5:
קלט:
road1 = [1, 2, 3, 4, 5, 6],
road2 = [6, 5, 4, 3, 2, 1]
פלט:
12

הסבר: התחלה בכביש 1, מעבר לכביש 2 אחרי 3 מקטעים: 1+2+3+3+2+1 = 12.

דוגמה 6:
קלט:
road1 = [2, 2, 2, 2, 2],
road2 = [1, 1, 1, 1, 1]
פלט:
5

הסבר: הנהג מתחיל בכביש 2 ונוסע עד סופו ללא מעבר, זמן הנסיעה הוא 5 דקות.

דוגמה 7:
קלט:
road1 = [8, 9, 10, 11, 12],
road2 = [12, 11, 10, 9, 8]
פלט:
44

הסבר: התחלה בכביש 1 ומעבר לכביש 2 אחרי 2 מקטעים: 8+9+10+9+8 = 44.

דוגמה 8:
קלט:
road1 = [1, 3, 5, 7, 9],
road2 = [2, 4, 6, 8, 10]
פלט:
25

הסבר: התחלה בכביש 1 ונסיעה עד הסוף ללא מעבר: 1+3+5+7+9 = 25.

Loading...
נשמרLn 1, Col 1

קלט:

road1 = [5, 4, 5, 8, 12, 9, 9, 3],
road2 = [7, 3, 3, 12, 10, 2, 10, 7]

הפלט המבוקש:

49